[C++]Convertion decimal en hexadecimal

Convertion decimal en hexadecimal [C++] - C++ - Programmation

Marsh Posté le 27-04-2004 à 20:56:23    

Bonsoir,
Je voulais savoir si c'etait possible de convertir un decimal en hexadecimal je donne un exemple car en cherchant sur le forum il y a bien deja des posts mais a chaque fois c'est l'embrouille donc :
j'ai par exemple la valeur 965 en decimal et je voudrais recuperer sur 4 chiffres très important 03C5
Merci de vos réponse et evitez s'il vous plait les réponses du style tape toi l'algo avec des boucles (switch,multipli 16,...deja pense mais solution de secours).
Thanks For All !!

Reply

Marsh Posté le 27-04-2004 à 20:56:23   

Reply

Marsh Posté le 27-04-2004 à 21:11:21    

Code :
  1. /*decimal to hexadecimal*/
  2. #include<stdio.h>
  3. #include<conio.h>
  4. void main()
  5. {
  6. int n,i,a,m[20];
  7. i=0;
  8. clrscr();
  9. printf("enter the no " );
  10. scanf("%d",&n);
  11. a=n%16;
  12. while(n!=0)
  13. {m[19-i]=a;
  14. n=n/16;
  15. a=n%16;
  16. i+=1;}
  17. printf("\n hex. eq. is " );
  18. for(n=20-i;n<20;n++)
  19. {switch(m[n])
  20. {
  21. case 10:
  22. printf("A" );
  23. goto k;
  24. case 11:
  25. printf("B" );
  26. goto k;
  27. case 12:
  28. printf("C" );
  29. goto k;
  30. case 13:
  31. printf("D" );
  32. goto k;
  33. case 14:
  34. printf("E" );
  35. goto k;
  36. case 15:
  37. printf("F" );
  38. goto k;}
  39. printf("%d",m[n]);
  40. k:}
  41. getch();
  42. }


 
http://www.programmersheaven.com/z [...] /31862.htm

Reply

Marsh Posté le 27-04-2004 à 21:12:15    

pour récupérer sur 4 chiffre il suffit de limiter la fonction à FFFF... soit 65535

Reply

Marsh Posté le 27-04-2004 à 21:17:00    

Code :
  1. #include <iostream>
  2. #include <sstream>
  3. using namespace std;
  4. int main()
  5. {
  6.     int n=965;
  7.    
  8.     ostringstream oss;
  9.    
  10.     oss<<hex<<n;
  11.    
  12.     string str=oss.str();
  13.    
  14.     cout << str << '\n';
  15.    
  16. }

Reply

Marsh Posté le 27-04-2004 à 21:49:40    

merci les gars

Reply

Marsh Posté le 27-04-2004 à 21:50:51    

JagStang a écrit :

Code :
  1. /*decimal to hexadecimal*/
  2. #include<stdio.h>
  3. #include<conio.h>
  4. void main()
  5. {
  6. int n,i,a,m[20];
  7. i=0;
  8. clrscr();
  9. printf("enter the no " );
  10. scanf("%d",&n);
  11. a=n%16;
  12. while(n!=0)
  13. {m[19-i]=a;
  14. n=n/16;
  15. a=n%16;
  16. i+=1;}
  17. printf("\n hex. eq. is " );
  18. for(n=20-i;n<20;n++)
  19. {switch(m[n])
  20. {
  21. case 10:
  22. printf("A" );
  23. goto k;
  24. case 11:
  25. printf("B" );
  26. goto k;
  27. case 12:
  28. printf("C" );
  29. goto k;
  30. case 13:
  31. printf("D" );
  32. goto k;
  33. case 14:
  34. printf("E" );
  35. goto k;
  36. case 15:
  37. printf("F" );
  38. goto k;}
  39. printf("%d",m[n]);
  40. k:}
  41. getch();
  42. }


 
http://www.programmersheaven.com/z [...] /31862.htm

c'est presque marrant

Reply

Marsh Posté le 27-04-2004 à 21:51:39    

skelter a écrit :

Code :
  1. #include <iostream>
  2. #include <sstream>
  3. using namespace std;
  4. int main()
  5. {
  6.     int n=965;
  7.    
  8.     ostringstream oss;
  9.    
  10.     oss<<hex<<n;
  11.    
  12.     string str=oss.str();
  13.    
  14.     cout << str << '\n';
  15.    
  16. }



il sert à quoi ton stringstream ?

Reply

Marsh Posté le 27-04-2004 à 21:55:30    

juste pour foutre dans une chaine le resultat
 
tu dit ca parce que on aurait peu faire
 
cout << hex << n << '\n'; ?
 
voila en cpasulé ds une fonction
 

Code :
  1. string DecToHex(int n)
  2. {
  3.     ostringstream oss;
  4.     oss<<hex<<n;
  5.     return oss.str();
  6. }



Message édité par skelter le 27-04-2004 à 22:00:41
Reply

Marsh Posté le 28-04-2004 à 13:12:14    

En C il a une fonction qui s'appelle printf... Et il est même possible qu'elle convertisse toute seule le décimal en héxa.
 
C'est formidable ça !!!
 
Le plus dur c'est de lire la doc !!!!!!!!!!!!!!!!

Reply

Marsh Posté le 28-04-2004 à 13:14:24    

christophe_d13 a écrit :

En C il a une fonction qui s'appelle printf...


Pas de chance c'est un topic C++...[:joce]

Reply

Marsh Posté le 28-04-2004 à 13:14:24   

Reply

Marsh Posté le 28-04-2004 à 13:31:39    

christophe_d13 a écrit :

En C il a une fonction qui s'appelle printf... Et il est même possible qu'elle convertisse toute seule le décimal en héxa.
 
C'est formidable ça !!!
 
Le plus dur c'est de lire la doc !!!!!!!!!!!!!!!!


 
En C++ il y a la même chose  :fou:  Lisez la doc de de iostream !!!!
 

Code :
  1. // conversion d'un nombre 'int' vers une chaine hexa
  2. std::ostringstream str;
  3. str << std::setbase(16) << valeur;


 


---------------
Cordialement, Xterm-in'Hate...
Reply

Marsh Posté le 28-04-2004 à 15:30:44    

mais on a déjà cité std::hex :o

Reply

Marsh Posté le 28-04-2004 à 17:14:29    

si je pouvais rajouter qqch a ma demande je voudrais le code hexadecimal en majuscule c'est possible avec l'exemple de skelter ???
606-->25E et non 25e car j'en ai besoin sous cette forme la ds une table de symboles.
Merci


Message édité par Alaix le 28-04-2004 à 19:03:15
Reply

Marsh Posté le 28-04-2004 à 17:17:40    

ca faisait longtemps que javais plus vu des goto


Message édité par red faction le 29-04-2004 à 09:22:23
Reply

Marsh Posté le 28-04-2004 à 18:57:23    

skeye> Tu crois pas non plus que je vais lui fournir la réponse...
 
Alaix> Achète un bouquin sur le C++ et lis-le !
 
Non mais que diable !

Reply

Marsh Posté le 28-04-2004 à 18:59:38    

toi ta pas bien d'utilité...
a quoi bon le forum si tu ne partage pas tes connaissances
enfin chacun ses idées et pour info le but du forum c'est pas de casser sans arret parce que ca effectivement c'est pas bien compliqué


Message édité par Alaix le 28-04-2004 à 19:00:52
Reply

Marsh Posté le 28-04-2004 à 19:42:28    

Alaix a écrit :

si je pouvais rajouter qqch a ma demande je voudrais le code hexadecimal en majuscule c'est possible avec l'exemple de skelter ???
606-->25E et non 25e car j'en ai besoin sous cette forme la ds une table de symboles.
Merci


 

Code :
  1. std::ostringstream str;
  2. str << std::setbase(16) << std::setiosflags(std::ios_base::uppercase) << valeur;


---------------
Cordialement, Xterm-in'Hate...
Reply

Marsh Posté le 28-04-2004 à 19:43:31    

xterminhate je te congratule
merci pour tout !!!

Reply

Marsh Posté le 28-04-2004 à 21:55:54    

t'as inclus iomanip ?


---------------
Fleur de métal, entité invulnérable, vêtue tant bien que mal, d'une muraille inébranlable...
Reply

Marsh Posté le 28-04-2004 à 21:58:13    

oui c'est bon je viens de le trouver
mais en fait maintenant qq soit la valeur que je donne il me sort comme reponse 0012FF40 ??

Reply

Marsh Posté le 28-04-2004 à 22:10:13    

?
ou est le probleme ?
 

Code :
  1. #include <iostream>
  2. #include <iomanip>
  3. int main()
  4. {
  5.    std::cout << std::hex << std::setiosflag(std::ios_base::uppercase )<< 965 << '\n';
  6. }

Reply

Marsh Posté le 28-04-2004 à 22:10:16    

ok c'est bon ca marche merci

Reply

Marsh Posté le 28-04-2004 à 22:11:05    

le probleme c'est que ca ca marche pas
std::setbase(16)
std::setbase(16)
Merci pour ton aide skelter je te remercie

Reply

Marsh Posté le 28-04-2004 à 22:17:56    

std::setbase(16) ==> ca marche pas?
 
c koi ton compilo ?

Reply

Marsh Posté le 28-04-2004 à 23:52:28    

Code :
  1. printf("%X", 965);


 
C?est moins  C++, mais c?est court quand même :ange:  

Reply

Marsh Posté le 29-04-2004 à 00:19:42    

parce que cout<<hex<<965; c'est long ?

Reply

Marsh Posté le 29-04-2004 à 00:40:02    

spa bientot finit toutes ces conneries ?
 
 
 std::cout  
    << std::showbase << std::hex << std::uppercase << 0xdeadbeef << '\n';

Reply

Marsh Posté le 29-04-2004 à 09:19:54    

fli a écrit :

Code :
  1. printf("%X", 965);


 
C?est moins  C++, mais c?est court quand même :ange:


 
Ben on est dans la cat C++ donc HS :o

Reply

Marsh Posté le 29-04-2004 à 10:15:22    

C vraiment naz, depuis quand on n'a pas le droit d'utiliser la lib C en C++ !!
 
Et si tu veux formater une string pas nécessairement sur le stdout, j'imagine que vous allez avoir une une superbe idée pour remplacé un pauvre sprintf :)
 
Bonne pignole  :sleep: ,
 
je vais me "TT" tout seul
 
 :bounce:  :bounce:  :bounce:

Reply

Marsh Posté le 29-04-2004 à 10:47:03    

fli a écrit :

C vraiment naz, depuis quand on n'a pas le droit d'utiliser la lib C en C++ !!
 
Et si tu veux formater une string pas nécessairement sur le stdout, j'imagine que vous allez avoir une une superbe idée pour remplacé un pauvre sprintf :)
 
Bonne pignole  :sleep: ,
 
je vais me "TT" tout seul
 
 :bounce:  :bounce:  :bounce:


 
bien sur que tu peut lutiliser et que ca va fonctionner sans prob, mais ca reste sale. si tu fait du C++ tu utilise ce qui a ete prevu point barre. aurevoir printf fopen and co


Message édité par red faction le 29-04-2004 à 11:13:26
Reply

Marsh Posté le 29-04-2004 à 10:51:30    

fli a écrit :

C vraiment naz, depuis quand on n'a pas le droit d'utiliser la lib C en C++ !!
 
Et si tu veux formater une string pas nécessairement sur le stdout, j'imagine que vous allez avoir une une superbe idée pour remplacé un pauvre sprintf :)
 
Bonne pignole  :sleep: ,
 
je vais me "TT" tout seul
 
 :bounce:  :bounce:  :bounce:


 
ouais c'est sur std::ostringstream comme il a été déjà dit, c super dur à utiliser quand meme ...


---------------
-( BlackGoddess )-
Reply

Marsh Posté le 29-04-2004 à 12:03:06    

Taz a écrit :

0xdeadbeef  


[:meganne]
 
Je ne suis pas sur de voir l'interet de massacrer un animal innocent pour cet exemple :o


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

Marsh Posté le 29-04-2004 à 13:16:29    

fli a écrit :

C vraiment naz, depuis quand on n'a pas le droit d'utiliser la lib C en C++ !!
 
Et si tu veux formater une string pas nécessairement sur le stdout, j'imagine que vous allez avoir une une superbe idée pour remplacé un pauvre sprintf :)
 
Bonne pignole  :sleep: ,
 
je vais me "TT" tout seul
 
 :bounce:  :bounce:  :bounce:


 
 

Code :
  1. ostringstream str;
  2. str << setbase(16) << setiosflags(ios_base::uppercase) << valeur;

:whistle:

Reply

Marsh Posté le 29-04-2004 à 13:30:12    

ouais enfin là c'est compliqué pour rien  
 
si on veut jouer avec les flags, faut utiliser setf/unsetf

Reply

Marsh Posté le 29-04-2004 à 17:44:03    

Eheh le changment de pass :)

Reply

Marsh Posté le 29-04-2004 à 17:44:17    

[:gordon shumway]

Reply

Marsh Posté le 29-04-2004 à 18:58:43    

lol

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed