Besoin de conseils sur transcription de nombre decimal en binaire

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 238 fois - Téléchargée 31 fois

Contenu du snippet

Voilà j'ai fait une petite fonction qui transcrit un nombre decimal en binaire...
Soyez indulgent je ne suis qu'un debutant... Je souhaiterais juste avoir vos conseils pour m'améliorer... J'ai fait le programme "au feeling" si vous connaissez de meilleur méthode, dites les moi :)

Source / Exemple :


void binaire(int clavier)
{
   int binaire;
   int clavier2=clavier;
   int compteur=0;
   int *ptr;
   // Calculer une 1er fois afin de determiner combien de fois on doit effectuer le calcul
   while(clavier2!=0)
   {
   	compteur++;
      binaire=(clavier2%2);
      clavier2 /= 2;
   }
   // Alocation de mémoire dynamique en fonction du nombre de calcul effectué
   ptr=(int*)malloc(sizeof(int)*compteur);
   compteur=0;
   // Affecter les valeurs à la mémoire dynamique
   while(clavier!=0)
   {
   	compteur++;

  • (ptr+compteur)=(clavier%2);
clavier /= 2; } printf("\n"); // Afficher le résultat printf(" "); while(compteur!=0) { if(compteur%4==0) { printf(" "); } printf("%d",*(ptr+compteur)); compteur--; } }

A voir également

Ajouter un commentaire Commentaires
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
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);
Messages postés
7
Date d'inscription
lundi 22 mars 2004
Statut
Membre
Dernière intervention
23 mars 2004

Ah ouai au passage => minschk t'es baleze :). J'aprecie bcp tes comentaires en + :)
Messages postés
7
Date d'inscription
lundi 22 mars 2004
Statut
Membre
Dernière intervention
23 mars 2004

Merci bcp de votre aide, j'en prends bonne note :)
Messages postés
65
Date d'inscription
dimanche 12 janvier 2003
Statut
Membre
Dernière intervention
5 novembre 2010

Ha ok, désolé, j'pensais que tu voulais juste afficher en binaire... :)
Messages postés
1
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
23 mars 2004

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;
}
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (D1mmu)