IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Convertir un décimal en binaire


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 180
    Points : 65
    Points
    65
    Par défaut Convertir un décimal en binaire
    Bonjour,

    Je suis en train de faire un exercice qui consiste à convertir un nombre décimal en binaire puis hexa.

    Voici mon code pour le binaire :

    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
    45
    #include "stdafx.h"
    #include <iostream>
    #include <math.h>
     
    using namespace std;
     
     
    int binaire(int nombre)
    	{	
    	int tab[10];
    	int q=1,r=0,i=0,j=0;
     
    		while(q != 0)
    			{
    			q=(int)(nombre/2);
    			r=nombre-2*q;
    			tab[i]=r;
    			i++;
    			nombre=q;
    			}
     
    		for (j=0;j<i;j=j+1)		// il faut mettre j<i car on a compté 
    					// une fois de trop le i avant
     
    			{	
    				nombre=nombre+tab[j]*pow(10,j);
     
    			}
    		//cout << " j vaut : " << j<< endl;
    		//cout << " i vaut : " << i<< endl;
     
    		return nombre;
     
     
    	}
     
    int main()
    	{
    		int a;
    		cout << " Entrez un nombre à convertir : ";
    		cin >>a;
    		cout << " La conversion de " << a << " en binaire est : "<<binaire(a)<<endl;
     
    		return 0;
    	}
    Comme vous pouvez vous en rendre compte, j'ai adopté une méthode mathématiques. Mais connaissez-vous ainsi une autre méthode pour faire ça ? ( qui fasse appel à des fonctions déjà définies peut-etre)

    Merci.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 394
    Points : 473
    Points
    473
    Par défaut
    C'est une question récurrente, une recherche dans ce forum y répondra.
    Pour afficher un entier en format binaire, je passe par un std::bitset mais il y a d'autres possibilités
    Pour l'afficher en hexa, c'est déjà prévu dans les flux de sortie

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    362
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 362
    Points : 410
    Points
    410
    Par défaut
    S'il s'agit de les afficher, tu peux regarder le cours : megacours au chapitre des manipulateurs des flux de sortie.

    Mais s'il s'agit d'un exercice scolaire, ce que tu as fait est sans doute mieux. Car en utilisant les manipulateurs de flux, ta méthode binaire() ne prendrait qu'une ligne.

    Sinon, tu peux te renseigner sur ce que fait l'opérateur ">>" à un entier car il te permettra de donner à ton propre code un look plus "hardcore programmer", même si je pense qu'en l'utilisant, tu aurais le même exécutable.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 180
    Points : 65
    Points
    65
    Par défaut
    Merci à vous !

    Il s'agit effectivement de l'afficher, ce que fait mon programme plus haut, mais vous répondez parfaitement à ma question, j'étais persuadé qu'il existait déjà des commandes, mais je ne les trouvais pas.

    Résultat, je me suis embeté à faire un programme pour afficher en hexa alors que ça peut prendre 2 lignes apparemment

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    N'oubliez pas de jeter un oeil à la avant de poster

    http://c.developpez.com/faq/cpp/?pag...ferentes_bases

Discussions similaires

  1. Réponses: 15
    Dernier message: 22/08/2012, 21h11
  2. Convertir des bytes en binaire ...
    Par Battosaiii dans le forum C
    Réponses: 2
    Dernier message: 18/03/2006, 16h47
  3. Convertir un String en binaire
    Par Berns dans le forum Langage
    Réponses: 2
    Dernier message: 17/11/2005, 12h32
  4. Convertir un string en binaire
    Par TekP@f dans le forum ASP
    Réponses: 4
    Dernier message: 10/05/2005, 17h17
  5. [ABAP] Convertir nombre decimal en binaire
    Par danael dans le forum SAP
    Réponses: 3
    Dernier message: 04/04/2005, 13h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo