Travail à Faire:
1.Ecrire une fonction de prototype void conv(int) convertit un entier en base 2.
Cette fonction affiche les bits de l’entier n passé en argument.
2. Ecrire une fonction de prototype void conv(int n, int B) convertit un entier n en base
B. Cette fonction affiche les chiffres en base B de l’entier n passé en argument. La fonction doit fonctionner pour les bases 2 `a 16 au moins.
L’application directe de l’algorithme vu en cours a un petit défaut : les chiffres sont affichés à l’envers. C¸ a n’est pas grave : l’´enonc´e ne demande pas de les affichés l’endroit.
Résoudre ce problème en toute généralité nécessite d’utiliser un algorithme ine?cace ou des tableaux.
Ci-dessous, une combine pour afficher à l’endroit en base 2.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
#include void conv2(int n){ while (n!=0){ printf("%i", n%2); n=n/2; } printf("\n"); } void convB(int n, int B){ int c; char affc; while (n!=0){ c=n%B; if (c<=9) affc=’0’+c; else affc=’A’+c-10; printf("%c", affc); n=n/B; } printf("\n"); } void convAlendroit(int n){ int res, d; res=0; d=1; while (n!=0){ res = res + n%2*d; d=10*d; n=n/2; } printf("%i", res); printf("\n"); } main(){ convB(255, 16); } |