
Olé
By: a guest on
Jan 25th, 2011 | syntax:
Clone C | size: 1.80 KB | hits: 126 | expires: Never
#include<stdio.h>
#include<stdlib.h>
typedef char binaire[33];
typedef char hexa[9];
int bin2dec(binaire b)
{
int i, Result;
Result = 0;
for(i=0; b[i]!='\0'; ++i);
{
Result = 2 * Result + b[i];
}
return Result;
}
int hex2dec(hexa h)
{
char TabHex = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int i, Result, j, val;
Result = 0;
for(i=0; h[i]!='\0'; ++i)
{
for(j=0; j<16; ++j)
{
if(TabHex[j]==h[i]) val=j;
}
Result = Result + val*pow(16,i);
}
return Result;
}
void dec2bin(int n, binaire b)
{
int i, reste, Result;
for(i=0; n!=0; ++i)
{
reste=n%2;
b[i] = reste;
n=(n-reste)/2;
}
}
void dec2hex(int n, hexa h)
{
int i, reste, j;
char val;
char TabHex = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
for(i=0; n!=0; ++i)
{
reste=n%16;
for(j=0; i<16; ++j)
{
if(j==reste) val = TabHex[j+1];
}
h[i] = val;
n=(n-reste)/16;
}
}
main()
{
int choix, i, dec; binaire b; hexa h;
printf("--- Que voulez vous effectuer ? ---\n");
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");
scanf("%d", &choix);
switch(choix)
{
case 1 :
printf("Veuillez saisir le nombre en binaire:\n");
for(i=0; i<33; ++i)
{
scanf("%d", &b[i]);
}
bin2dec(b);
break;
case 2 :
printf("Veuillez saisir un hexa:\n");
for(i=0; i<9; ++i)
{
scanf("%d", &h[i]);
}
hex2dec(h);
break;
case 3 :
printf ("veuillez saisir un décimal:\n");
scanf("%d", &dec);
dec2bin(dec, b);
break;
case 4 :
printf ("veuillez saisir un décimal:\n");
scanf("%d", &dec);
dec2hex(dec, hex);
break;
}
}