BESOIN DE CONSEILS SUR TRANSCRIPTION DE NOMBRE DECIMAL EN BINAIRE

G0ss3Yn Messages postés 65 Date d'inscription dimanche 12 janvier 2003 Statut Membre Dernière intervention 5 novembre 2010 - 22 mars 2004 à 19:38
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 - 24 mars 2004 à 06:35
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/21365-besoin-de-conseils-sur-transcription-de-nombre-decimal-en-binaire

cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
24 mars 2004 à 06:35
ChaineBinaire=(char*)malloc(129);
memset(ChaineBinaire,'0',128);

calloc fait la meme chose, et le compilo convrti lui meme les pointeur sur type de base normalement

ChaineBinaire=calloc(129);
D1mmu Messages postés 7 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 23 mars 2004
23 mars 2004 à 19:15
Ah ouai au passage => minschk t'es baleze :). J'aprecie bcp tes comentaires en + :)
D1mmu Messages postés 7 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 23 mars 2004
23 mars 2004 à 18:03
Merci bcp de votre aide, j'en prends bonne note :)
G0ss3Yn Messages postés 65 Date d'inscription dimanche 12 janvier 2003 Statut Membre Dernière intervention 5 novembre 2010
23 mars 2004 à 12:21
Ha ok, désolé, j'pensais que tu voulais juste afficher en binaire... :)
minschk Messages postés 1 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 23 mars 2004
23 mars 2004 à 06:46
Hello,

comme je n'arrivais pas à dormir, je suis dit que ce serait amusant alors voilà le résultat ! :)

J'espère que cela pourra t'aider ! :)

@+
Minschk

--------------------------------------------------------------
#include
#include <stdlib.h>

using namespace std;

// Conversion Base10 en Binaire sous forme de String
void binaire(int Base10)
{
int counter=128; // 128 pour partir de la fin du tableau sinon je suis en sens inverse ! :(
char *ChaineBinaire;

ChaineBinaire=(char*)malloc(129);
memset(ChaineBinaire,'0',128); // Pour remplir proprement la chaine mais pas obligatoire
ChaineBinaire[129]=0; // Pour terminer la string par un zéro (nécessaire pour le printf uniquement)

while (Base10!=0)
{
// Bloc au cas où il n'y a pas de memset !
// if ((Base10%2)==0) InBinary[counter]='0';
// else InBinary[counter]='1';

// Bloc au cas où il y a un memset !
// Plus propre, je pense car on évite le else inutile ! :)
if ((Base10%2)!=0) ChaineBinaire[counter]='1';

Base10/=2;
counter--;
}

printf("%s\n",&ChaineBinaire[counter+1]); // Affichage de châine avec Counter pour ne pas avoir de caractères bizarre, lol ! :)
free(ChaineBinaire); // Pour effacer le vilain pointeur ! :)
}

int main(int argc, char *argv[])
{
int NombreAConvertir=64565;

// Comment se prendre la tête et encore ! :)
binaire(NombreAConvertir);

// OU BEAUCOUP PLUS SIMPLE
char *ChaineBinaire;
ChaineBinaire=(char*)malloc(129);
memset(ChaineBinaire,'0',128); // Pour remplir proprement la chaine mais pas obligatoire
ChaineBinaire[129]=0; // Pour terminer la string par un zéro (nécessaire pour le printf uniquement)

itoa(NombreAConvertir,ChaineBinaire,2); // 2 pour Binaire ! :)
printf("%s\n",ChaineBinaire); // Affichage de châine avec Counter pour ne pas avoir de caractères bizarre, lol ! :)
free(ChaineBinaire); // Pour éffacer le vilain pointeur ! :)

system("PAUSE");
return 0;
}
D1mmu Messages postés 7 Date d'inscription lundi 22 mars 2004 Statut Membre Dernière intervention 23 mars 2004
22 mars 2004 à 23:05
bin je comprends pas ita ça transforme pas un nombre decimal en binaire à ce que je sache? :| ?
G0ss3Yn Messages postés 65 Date d'inscription dimanche 12 janvier 2003 Statut Membre Dernière intervention 5 novembre 2010
22 mars 2004 à 19:38
Salut !
Je n'est pas testé ton prog, mais juste comme ça vite fait :
En C : itoa( int, char *, int ) effectue la même opération
et en C++ : cout<<setbase(2)<< peut le faire aussi :)
Voilà.... !
Bye !
Rejoignez-nous