Conversion en c++

Fermé
Sylvie - 23 sept. 2003 à 19:28
 dispa - 5 déc. 2003 à 09:37
Bonjour,

J'ai effectué un programme en c++ pour faire la conversion d'un nombre décimal en nombre binaire avec la fonction char. Jusque là tout fonctionne.

Mais il faut que j'effectue la somme des deux nombre binaire. Problème, je suis incapable de trouver la fonction qui permet d'additionné deux données de type char.

J'aimerais beaucoup de quelqu'un puisse m'aider.
Merci à l'avance.
Sylvie

3 réponses

>Problème, je suis incapable de trouver
>la fonction qui permet d'additionné
additionner
>deux données de type char.
avec ca tu peux additionner deux donnees de type char:
guillaume@fallen:/tmp$ cat test.c

#include <stdio.h>

int main(void)
{
char a = 'a';
char b = 'b';

char c = a + b;
putchar(c);
return 0;
}

mais une addition n est pas une conversion. tu n es pas tres claire.

--
pouet
0
Wins Messages postés 2 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 22 octobre 2003
23 sept. 2003 à 22:13
Bonjour,

J'ai effectué la conversion en binaire à l'aide de cette fonction :

void Calcule (int NbreDeci, char *Binaire)
{	
	int position = 7;
	do
		{
			Binaire[position] = (NbreDeci % 2) + 48;
			NbreDeci = NbreDeci / 2;
			position--;
		}
		while (NbreDeci != 0);
}

Bien sur il me renvoie le nombre en binaire dans ma variable Binaire.

Le problème que j'ai c'est qu'il faut que j'addition BinaireA et BinaireB. Comment puis-je faire.

Merci à l'avance
Wins

                
0
ta fonction elle pue
0
ben ma foi, je ne vois pas le probleme: tu fais de la meme maniere que tu as fais pour ta conversion!
tu parcours toutes les "cases" de tes deux char * en commencant par la fin, ensuite tu fais l addition binaire, si la variable retenue est vraie, alors tu ajoutes 1 au resultat et tu sockes 1 ou 0 (le resultat concretement) dans la case corespondante de ton char*binaire_resultat.

bref le prototype serait char *add_binaire(char *binaire_a, char *binaire_b);

j'espere avoir ete clair. si tu as des problemes d implementation n hesite pas a poster ton code.
relativement au code de void Calcule (int NbreDeci, char *Binaire), je te conseille de declarer NbreDeci en tant que unsigned int, comme position, dans la mesure ou ils ne sont jamais negatifs, cela aide _beaucoup_ pour eviter les bugs. ensuite pour des questions de facilite de lecture ET de portabilite, evite les 65 ou les 48, utilise 'a', '0', etc...

--
pouet
0