begin process at 2012 02 12 23:49:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

CONVERSION BINAIRE/HEXA


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

CONVERSION BINAIRE/HEXA

vendredi 7 novembre 2008 à 10:43:36 | CONVERSION BINAIRE/HEXA

alex64100

BJR,
je dois développer un prog d e conversion   binaire/héxa
a partir de ce code  :


#include <stdio.h>
#include <stdlib.h>
#include <conio.h>


/*  exo 2.B
ecrire un nombre en base 2
mais du dernier   au  premier bit*/

main ()
{
    int n;
    int b;
    int err;
    int l; // longueur de n après changement de base
    int tab[50]; // remplacé par char tab[50];
 
    printf ("Changement de base : base 2 <===> 10 \n\n");
    printf ("Saisir un nombre en base 10 :  ");
    scanf ("%d", &n);
    err = 1;
   
    while (err)
    {
          printf ("Entrer une  base 2 - 10 :  ");
          scanf ("%d", &b);
          err = 0;
         
          if (b < 2 && b > 10)
          {
                printf ("Erreur dans la base\n");
                err = 0;
           };
     };
     l= 0;
   
   
   
    while (n)
    {
     tab[l++]= n%b;
     n/=b;
    
    }
   
     while (l)
     {
           printf ("%c", '0' + tab[--l]);
     }
 
 
     getch();
    
}                                                                                                                              
pouvez vous m'aider svp      

vendredi 7 novembre 2008 à 11:58:10 | Re : CONVERSION BINAIRE/HEXA

fregolo52

Membre Club

Ton a 1er temps, il faut trouver les formules de conversion wikipidia peut t'aider.

vendredi 7 novembre 2008 à 11:59:20 | Re : CONVERSION BINAIRE/HEXA

fregolo52

Membre Club
Oula !! je suis fatigué !!!
je voulais dire :

dans un 1er temps
samedi 8 novembre 2008 à 03:01:34 | Re : CONVERSION BINAIRE/HEXA

Lucky92

Il n'y a pas vraiment besoin d'aller sur wikipédia.

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>


/*  exo 2.B
ecrire un nombre en base 2
mais du dernier   au  premier bit*/

main ()
{
    int n;
    int b;
    int err;
    int l; // longueur de n après changement de base
    int tab[50]; // remplacé par char tab[50];
 
    printf ("Changement de base : base 2 <===> 16 \n\n");
    printf ("Saisir un nombre en base 10 :  ");
    scanf ("%d", &n);
    err = 1;
   
    while (err)
    {
          printf ("Entrer une  base 2 - 16:  ");
          scanf ("%d", &b);
          err = 0;
         
          if (b < 2 && b > 16)
          {
                printf ("Erreur dans la base\n");
                err = 0;
           };
     };
     l= 0;
   
   
   
    while (n)
    {
     tab[l++]= n%b;
     n/=b;
    
    }
   
     while (l)
     {
           printf ("%x", '0' + tab[--l]);
     }
 
 
     getch();
    
}                     

samedi 8 novembre 2008 à 11:08:26 | Re : CONVERSION BINAIRE/HEXA

alex64100

OK MAIS COMMENT TU FAISLA CONVERSION?
samedi 8 novembre 2008 à 21:47:05 | Re : CONVERSION BINAIRE/HEXA

Lucky92

Quelle que soit la base utilisée, la conversion est faite par le code suivant :

while (n)
{
     tab[l++]= n%b;
     n/=b;
}

chaque élément du tableau tab représente un chiffre du nombre dans la base désirée.

Quant aux fait que 10 s'écrit "a" en hexa, 11 "b", 12  "c", etc. ce n'est que de la représentation, et c'est le printf ("%x") qui s'en occupe.

Finalement, c'est Fregolo52 qui a raison, wikipédia s'impose...

Courage.
dimanche 9 novembre 2008 à 17:01:20 | Re : CONVERSION BINAIRE/HEXA

alex64100

mon code  prend  forme :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>


/*  exo 2.C
ecrire un programme de conversion
décimal hexadécimal*/

main ()
{
    int n;
    int b;
    int err;
    int l; // longueur de n après changement de base
    char tab[50];
 
    printf ("Changement de base : base 2 <===> 16 \n\n");
    printf ("Saisir un nombre en base 10 :  ");
    scanf ("%d", &n);
    err = 1;
   
    while (err)
    {
          printf ("Entrer une  base 2 - 16 :  ");
          scanf ("%d", &b);
          err = 0;
         
          if (b < 2 && b > 16)
          {
                printf ("Erreur dans la base\n");
                err = 0;
           };
     };
     l= 0;
   
   
   
    while (n)
    {
     tab[l++]= n%b;
     n/=b;
    
    }
    switch (n)
    {
           case 10:
           printf (a"A");
           break;          
           case 11:
           printf ("B");
           break;    
           case 12:
           printf ("C");
           break;          
           case 13:
           printf ("D");
           break;   
           case 14:
           printf ("E");
           break;          
           case 15:
           printf ("F");
           break;          
  
     

   }
     while (l)
     {
      printf ("%d", tab[--l]);
    
    
     }                                                                                                                              
     getch();
}

le  pb est qe kan je rentre 20, il  met 14  au lieu de 14A
POURQUOI?










dimanche 9 novembre 2008 à 21:29:41 | Re : CONVERSION BINAIRE/HEXA

Lucky92

Ton switch ne sert à rien, puisque à la sortie de la boucle while, n vaut 0.
Je t'ai déjà donné toute la solution à cet exercice.
Que cherches-tu à faire ?


lundi 10 novembre 2008 à 15:48:57 | Re : CONVERSION BINAIRE/HEXA

alex64100

TON printf ("%x") fonctionne pas

pour 20
j'ai 14
au lieu de 14A
lundi 10 novembre 2008 à 16:12:54 | Re : CONVERSION BINAIRE/HEXA

Lucky92

Mon printf( "%x") marche très bien, 20 en base dix s'écrit bien 14 en hexa !!!


Cette discussion est classée dans : base, int, printf, tab, err


Répondre à ce message

Sujets en rapport avec ce message

Blem Somme ELmt d'un Tableau Bidimensionnel [ par Orezza ] Slt c encore moi, le boulet de l'info...c tjrs le meme prog mais cette fois ci j'aimerais afficher la somme des elmts de mon tableaux.#include #includ Problem Affichage de mon Tableau [ par Orezza ] salut à tous, j'ai un blem à l'affichage du tableau. l'utilisateur parametre son tableau, c lui qui l'initilize mais j'arrive pas à afficher apres le pb en c urgenttttttttttttttttt [ par natacha86 ] bonjour, j'ai un probleme avec mon programme, il ne veut pas sortir, j'ai fais un menu et apparement ya un bug mais je ne comprend rien.le code est as encore un pb en c svp....... [ par natacha86 ] j'ai essayer de séparer les fonctions mais ca ne marche pas...#include #include #include #include #include #define MAX 1000000 calcul en précision étendue [ par JesusQuintana ] Bonjours, Je veux programmer en C un ensemble complet de fonctions pour additionner, multiplier des nombres en précision étendue. Les no help une fonction qui a besoin de vous [ par natacha86 ] Re bonjour a tout le monde, voila j'ai mis tout le prog si vous voulez tester, en fait le pb viens de la fonctino tri_shell(), je ne sais pas pkoi ell Demande d'explication a propos d'un code. [ par Strick9 ] Salut à tous, j'ai obtenu grâce à se merveilleux site ce code sources pour cet énoncés:un programme permettant de donner toute les combinaison suite a compilation mai au lancement "erreur la memoire ne peu pas pas etre read" [ par touny23 ] je maitrise pas tro le C.mai comme j ai un projet a faire dessus pour la rentré , je sui obligé de m y mettre .j arrive a compiler sous dev-cpp mai lo fonctions sur les tableau [ par micoo86 ] Bonjour,en faite j'ai fait un programme avec le tableau (somme,affichage,minimum,maximum)mais j'arrive pas a faire le rest de l'exercice.si quelqu'un Probleme de fonction sur la bataille navale... [ par YASS_95 ] Bonjour à tous, Je travaille sur un projet qui est le jeu de la bataille navale et j'ai un petit probleme de fonctions... je vais vous expliquer. J'a


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,122 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales