Don't like ads? PRO users don't see any ads ;-)
Guest

Olé

By: a guest on Jan 25th, 2011  |  syntax: Clone C  |  size: 1.80 KB  |  hits: 126  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. typedef char binaire[33];
  5. typedef char hexa[9];
  6.  
  7. int bin2dec(binaire b)
  8. {
  9.         int i, Result;
  10.         Result = 0;
  11.         for(i=0; b[i]!='\0'; ++i);
  12.         {    
  13.                 Result = 2 * Result + b[i];
  14.         }
  15.         return Result;
  16. }
  17.  
  18. int hex2dec(hexa h)
  19. {
  20.         char TabHex = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
  21.         int i, Result, j, val;
  22.         Result = 0;
  23.         for(i=0; h[i]!='\0'; ++i)
  24.         {
  25.                 for(j=0; j<16; ++j)
  26.                 {
  27.                         if(TabHex[j]==h[i]) val=j;
  28.                 }
  29.                 Result = Result + val*pow(16,i);
  30.         }
  31.         return Result;
  32. }
  33.  
  34. void dec2bin(int n, binaire b)
  35. {
  36.         int i, reste, Result;
  37.         for(i=0; n!=0; ++i)
  38.         {
  39.                 reste=n%2;
  40.                 b[i] = reste;
  41.                 n=(n-reste)/2;
  42.         }
  43. }
  44.  
  45. void dec2hex(int n, hexa h)
  46. {
  47.         int i, reste, j;
  48.         char val;
  49.         char TabHex = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
  50.         for(i=0; n!=0; ++i)
  51.         {
  52.                 reste=n%16;
  53.                 for(j=0; i<16; ++j)
  54.                 {
  55.                         if(j==reste) val = TabHex[j+1];
  56.                 }
  57.                 h[i] = val;
  58.                 n=(n-reste)/16;
  59.         }
  60. }
  61.  
  62.  
  63. main()
  64. {
  65.         int choix, i, dec; binaire b; hexa h;
  66.         printf("--- Que voulez vous effectuer ? ---\n");
  67.         printf(" 1) Conversion binaire --> Décimale.\n 2) Conversion hexa --> Décimale.\n 3) Conversion Décimale --> Binaire.\n 4)Conversion Décimale --> Hexa.\n");
  68.         scanf("%d", &choix);
  69.         switch(choix)
  70.         {
  71.                 case 1 :
  72.                
  73.                 printf("Veuillez saisir le nombre en binaire:\n");
  74.                 for(i=0; i<33; ++i)
  75.                 {
  76.                         scanf("%d", &b[i]);
  77.                 }
  78.                 bin2dec(b);
  79.                 break;
  80.                
  81.                 case 2 :
  82.                
  83.                 printf("Veuillez saisir un hexa:\n");
  84.                 for(i=0; i<9; ++i)
  85.                 {
  86.                         scanf("%d", &h[i]);
  87.                 }
  88.                 hex2dec(h);
  89.                 break;
  90.                
  91.                 case 3 :
  92.                
  93.                 printf ("veuillez saisir un décimal:\n");
  94.                 scanf("%d", &dec);
  95.                 dec2bin(dec, b);
  96.                 break;
  97.                
  98.                 case 4 :
  99.                
  100.                 printf ("veuillez saisir un décimal:\n");
  101.                 scanf("%d", &dec);
  102.                 dec2hex(dec, hex);
  103.                 break;
  104.         }
  105. }