Bonjour,

J'ai deja realisee(repris) une fonction qui realise cette conversion. Mais il me semble que j'obtiens des erreurs . Pouvez vous me confirmer ? Quelle est peut etre l'erreur flagrante de cette fonction ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
	char* type2bin(char dec,char* bin)
{
	int r = 8;//nb de cases binaires
 
	memset(bin,'0',r); //par defaut le nb bin est nul
	bin[r] = 0;
 
	while(r--)
	{
	bin[r] = '0' + ((dec & (1 << r)) != 0);
 
	}
	printf("bin=%s\n",bin);
	return bin;
}
 
 
	void convertByteToBinary(char *textByte,char *textBinary)
 
{//truncate to 128 bits
	int n;
	n=strlen(textByte);
	char cat[n*8+1];
	//char *cat;
	char blb[9];
	*cat = 0;
	printf("n=%d\n",n);
 
	//convert Byte To binaries
	//printf("cat=%s\n",cat);
	while(*textByte)
	{
	//conversion du char en binaire
	type2bin(*textByte,blb);
     //printf("blb=%s\n",blb);
	strcat(cat,blb);
	printf("cat=%s\n",cat);
	textByte++;
	}
	//	printf(" cat=%s\n",cat);
	//	printf("ici\n");
	strncat(textBinary,cat,128);
	printf("textBinary=%s\n",textBinary);
}
En particulier char2bin realise la conversion byte -> binaire mais est elle fondee ?