BESOIN DE CONSEILS SUR TRANSCRIPTION DE NOMBRE DECIMAL EN BINAIRE
G0ss3Yn
Messages postés65Date d'inscriptiondimanche 12 janvier 2003StatutMembreDernière intervention 5 novembre 2010
-
22 mars 2004 à 19:38
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 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.
// 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és7Date d'inscriptionlundi 22 mars 2004StatutMembreDernière intervention23 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és65Date d'inscriptiondimanche 12 janvier 2003StatutMembreDerniè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 !
24 mars 2004 à 06:35
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);
23 mars 2004 à 19:15
23 mars 2004 à 18:03
23 mars 2004 à 12:21
23 mars 2004 à 06:46
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;
}
22 mars 2004 à 23:05
22 mars 2004 à 19:38
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 !