Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
874 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [c++] comment convertir un int en base 2, 4 et 8 ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c++] comment convertir un int en base 2, 4 et 8 ?

n°319325
didier1809
${citation_perso}
Posté le 27-02-2003 à 15:26:08  profilanswer
 

voila tout est dit, merci  :jap:


Message édité par didier1809 le 27-02-2003 à 15:40:09

---------------
.
mood
Publicité
Posté le 27-02-2003 à 15:26:08  profilanswer
 

n°319340
Nico5779
Posté le 27-02-2003 à 15:40:03  profilanswer
 

division successive par chacune de ses base +
tu retiens chaque fois le reste de la div obtenue,
par exemple dans un tableau pi tu afiche ce tableau a l'envers.
Tu peux te passer du tableau en utilisant une fct recurssive et en te servant de la pile, et en affichant le reste de la div juste après l'appel recurssif

n°319343
didier1809
${citation_perso}
Posté le 27-02-2003 à 15:42:24  profilanswer
 

oula, ca c'est un peu trop compliqué pour moi, j'ai un nombre saisi au clavier, par ex 5, je doit le convertir dans une base 2, 4 et 8, mais pas en meme temps  ;)  
 
j'ai trouvé ce bout de code
 

Code :
  1. int base ;
  2. char Chaine[64];
  3. long ValDeci;
  4. long lBase;
  5. int  iNbTour;
  6. long Reste;
  7. long Rapport;
  8. lBase = 2;
  9. iNbTour = 0;
  10.  while (ValDeci >= lBase)
  11.  {
  12.    Rapport = ValDeci / lBase;
  13.    Reste = ValDeci % lBase;
  14.    Chaine[iNbTour ++] = '0' + Reste;
  15.    ValDeci = Rapport;
  16.  };
  17.  Chaine[iNbTour ++] = '0' + Rapport;
  18.  Chaine[iNbTour] = '\0';
  19.  cout << Chaine << endl;


---------------
.
n°319350
Nico5779
Posté le 27-02-2003 à 15:44:55  profilanswer
 

ben ce bout de code fait exactement ce que j ai decrit (sans l histoire de la pile)

n°319353
didier1809
${citation_perso}
Posté le 27-02-2003 à 15:46:19  profilanswer
 

mais il m'affiche un 3 en exposant tout le temps  :(
 
edit : non, c'est bon, erreur de nom de variable  :pfff:
 
il me met aussi

conversion from 'long' to 'char', possible loss of data


 
pour ca :
 

Code :
  1. Chaine[iNbTour ++] = '0' + Reste;


Message édité par didier1809 le 27-02-2003 à 15:51:30

---------------
.
n°320598
Carbon_14
Posté le 28-02-2003 à 22:46:54  profilanswer
 

Le char n'a pas la même portée que le long. Le compilo signale qu'on risque de perdre des données lors du calcul.
Si Reste vaut 1000, ça rentrera pas dans un char (sera tronqué modulo 256 ?) => perte d'infos donc grosse erreur sur calculs ultérieurs. Il n'est pas censé savoir que Reste ne dépassera pas (?) 256.
 
On doit pouvoir écrire (sauf erreur)
Chaine[iNbTour ++] = '0' + (char)Reste; Le long est transtypé en char (ce qui n'empêche pas les pb si trop grand !!). Ca fait juste taire le warning.

n°320617
didier1809
${citation_perso}
Posté le 28-02-2003 à 23:37:22  profilanswer
 

merci  :jap:  
 
(je croit que ce code est de toi en plus  ;) )


---------------
.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [c++] comment convertir un int en base 2, 4 et 8 ?

 

Sujets relatifs
Construire une base de données pour fichiers EXCEL!Session VS base de donnée
Logiciel équivalent au module base de données de Delphi[java]convertir un int decimal en hexa et faire ensuite un masque?
PHP : épuration de la base après délaiConvertir un forum ezboard en PHPBB
Convertir une base de donnee ACCESS en Postgresqlconvertir base de donnes paradox en .sylk
Comment convertir une base Access 2002 en base MySql ????convertir une base Access en MySQL ...vos solutions ?
Plus de sujets relatifs à : [c++] comment convertir un int en base 2, 4 et 8 ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR