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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int c;
char *chaine[10] ;
int c_res;
unsigned int c_long;
char *chaine_zero;
char *chaine_res;
printf("donner le nombre: \n");
scanf("%x", &c);
itoa(c,chaine,16);
printf("la chaine obtenu est : %s \n", chaine);
c_long=strlen(chaine);
printf("la longeur est : %d \n", c_long);
if(c_long==8)
{
c_res=c;
printf("le nombre = %x \n", c_res);
}
else
{
unsigned int nbre_zero=(8-c_long);
printf("nbre_zero= %d \n", nbre_zero);
switch(nbre_zero)
{
case 1:
chaine_zero="0";
break;
case 2:
chaine_zero="00";
break;
case 3:
chaine_zero="000";
break;
case 4:
chaine_zero="0000";
break;
case 5:
chaine_zero="00000";
break;
case 6:
chaine_zero="000000";
break;
case 7:
chaine_zero="0000000";
break;
}
printf("chaine_zero= %s \n", chaine_zero);
concat(chaine_zero, nbre_zero, chaine, c_long,chaine_res);
printf("chaine_res= %s \n", chaine_res);
c_res=atoi(chaine_res);
printf("le nombre = %x \n", c_res);
}
return 0;
}
void concat(char * str1, unsigned int nbc1, char * str2, unsigned int nbc2,char * rstr)
{
unsigned int i = 0;
rstr = (char*)malloc((nbc1+nbc2+1) * sizeof(char));
for(i = 0; i < nbc1; i++)
{
rstr[i]=str1[i];
}
for(i = 0; i < nbc2; i++)
{
rstr[i+nbc1]=str2[i];
}
rstr[nbc1+nbc2+1]='\0';
} |
Partager