00001 #include <string.h>
00002 #include <unistd.h>
00003 #include "affiche.h"
00004
00005
00006 int affiche_fd = 2 ;
00007
00008
00009 char affiche_convhexa[16] = {
00010 '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
00011 } ;
00012
00013 void affiche_chaine(const char *s) {
00014 write(affiche_fd,s,strlen(s)) ;
00015 }
00016
00017 void affiche_ligne(const char *s) {
00018 affiche_chaine(s) ;
00019 affiche_chaine("\n") ;
00020 }
00021
00022 void affiche_entier(int n) {
00023 if (n) {
00024
00025
00026 char tampon [sizeof(int)*3+1] ;
00027 int i = sizeof(int)*3 ;
00028 int l = 0 ;
00029 int neg = 0 ;
00030 if (n<0) {
00031 neg = 1 ;
00032 n = -n ;
00033 }
00034 while (n>0) {
00035 tampon[i] = '0'+n%10 ;
00036 n/=10 ;
00037 i-- ;
00038 l++ ;
00039 }
00040 if (neg) {
00041 tampon[i] = '-' ;
00042 i-- ;
00043 l++ ;
00044 }
00045 write(affiche_fd,tampon+i+1,l) ;
00046 } else {
00047 write(affiche_fd,"0",1) ;
00048 }
00049 }
00050
00051 void affiche_hexa(unsigned int n) {
00052 char tampon [sizeof(int)*2+2] ;
00053 int i ;
00054 for (i = sizeof(int)*2; i>0 ; i--) {
00055 tampon[i+1] = affiche_convhexa[n%16] ;
00056 n/=16 ;
00057 }
00058 tampon[0]='0' ;
00059 tampon[1]='x' ;
00060 write(affiche_fd,tampon,sizeof(int)*2+2) ;
00061 }
00062