#include<stdio.h> #include<stdlib.h> #include<math.h>
unsigned long int puiss(unsigned long int x, int n) { if(n == 0) return 1; if(n == 1) return x; unsigned long int x2 = puiss(x,n/2); if(n%2 == 0) return x2 * x2; return x2 * x2 * x; } int char_to_int(char d) { char str[2]; str[0] = d; str[1] = '\0'; return (int) strtol(str, NULL, 10); }
unsigned int convertirEnBase10(int binaire) { char snum[20]; // convertir en String itoa(binaire,snum,10); // combien de caracères ? int nc = log10((int)binaire)+1; int decimal = 0; for(int i = nc-1 ; i >= 0; i--) { decimal += char_to_int(snum[i]) * puiss( 2, (nc-1)-i); } return decimal; } int main() { int binaire; while(true) { printf("Enter un nombre binaire "); scanf("%d",&binaire); printf ("%ld en base 2 = %ld en base 10\n",binaire, convertirEnBase10 (binaire) ); } return 0; }
|