#include #include #include "affiche.h" /* Descripteur de fichier sur lequel on écrit les messages */ int affiche_fd = 2 ; /* Tableau de conversion hexadécimale */ char affiche_convhexa[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' } ; void affiche_chaine(const char *s) { write(affiche_fd,s,strlen(s)) ; } void affiche_ligne(const char *s) { affiche_chaine(s) ; affiche_chaine("\n") ; } void affiche_entier(int n) { if (n) { /* On compte 3 caractères par octet, plus un pour le signe * (c'est une estimation grossière mais sûre). */ char tampon [sizeof(int)*3+1] ; int i = sizeof(int)*3 ; int l = 0 ; int neg = 0 ; if (n<0) { neg = 1 ; n = -n ; } while (n>0) { tampon[i] = '0'+n%10 ; n/=10 ; i-- ; l++ ; } if (neg) { tampon[i] = '-' ; i-- ; l++ ; } write(affiche_fd,tampon+i+1,l) ; } else { write(affiche_fd,"0",1) ; } } void affiche_hexa(unsigned int n) { char tampon [sizeof(int)*2+2] ; int i ; for (i = sizeof(int)*2; i>0 ; i--) { tampon[i+1] = affiche_convhexa[n%16] ; n/=16 ; } tampon[0]='0' ; tampon[1]='x' ; write(affiche_fd,tampon,sizeof(int)*2+2) ; }