Bonjour,
voila je dois simplement convertir des IDs que je r�cup�re sous forme d'entier, en format Hexad�cimal et pouvoir notamment les afficher a l'�cran. Comment faire ?
Merci d'avance !
Bonjour,
voila je dois simplement convertir des IDs que je r�cup�re sous forme d'entier, en format Hexad�cimal et pouvoir notamment les afficher a l'�cran. Comment faire ?
Merci d'avance !
IntToHex() devrait r�pondre � ta question.
Merci v tester.
Roo j'ai quand meme pas chercher loin mdr
IntToHex convertit un entier en hexad�cimal sur un certain nombre de chiffres hexad�cimaux. Par exemple, AnsiString A=IntToHex(300,4) donnera '012C', �a ne r�pond donc pas � la question.
Il faut passer par IntToBin par exemple
qui renvoie une cha�ne binaire sur 32 bits dans un AnsiString.
Code : S�lectionner tout - Visualiser dans une fen�tre � part AnsiString A=IntToBin(n);
� bient�t
Gilles
Envoy� par Benjy
IntToHex() est pourtant la bonne r�ponse � la question ?Envoy� par Gilles Lou�se
![]()
:
Je viens d'essayer: BCB me met simplement que cette fonction n'existe pas (IntToBin)![]()
Elle existe la fonction IntToBin, je l'ai trouv� dans l'aide par contre, il doit falloir inclure un package et je ne sais pas lequel car ce n'est pas pr�cis� clairement dans l'aide.
Surement effectivement puisque moi avec ma pov version personnelle elle n'est meme pas dans l'aide cette fonction !
En tout cas c pas grave, comme je connais la taille de mes ID: 11 ou 29 bits, j'ai utilis� la fonction IntToHex que neilbgr me conseille depuis le debut en mettant en deuxieme parametre 29 puisque c la plus grande longueur d'ID que je peux avoir.
Est-ce que mon raisonnement est bon selon vous ?
29 bits = 2^29 possibilit�s
Avec le 0 ca nous fait une plage de 0 � (2^29 - 1) soit :
2^29 - 1 = 536 870 912 - 1
536870911 en hexa ca donne : 1F FFF FFF
donc 8 digits devraient suffir me semble-t-il
Oui, o� avais-je la t�te? Je croyais que l'internaute voulait du binaire (sans doute parce que cette question avait d�j� �t� pos�e).Envoy� par neilbgr
Oui, IntToHex vous donnera bien de l'hexad�cimal sur un nombre de digits hexa demand� � l'avance.
� bient�t
Gilles
Ok. Maintenant ca marche bien avec mes 8 digits d'hexadecimal.
Par contre c plutot moche lorsque je tombe sur des ID de 11 bits seulement qui n'ont donc besoin que de 3 digits en hexa. Hors ca ne donne que des zeros a gauche plutot encombrant.
Quelqu'un aurait il une id�e pour enlever rapidement ces zeros a gauche ?
Merci d'avance !
J'ai l'impression qu'il faut le faire "� la main", par exemple :
� bient�t
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 i=1; while(A[i]=='0') i++; A=A.SubString(i,A.Length()-i+1);
Gilles
On peut toujours le faire en standard
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9 #include <sstream> AnsiString IntToHex2(int x) { std::ostringstream oss; oss << std::hex << x; return oss.str().c_str(); }
Mieux que SDL : d�couvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
C'est excellent, bravo Loulou24.
Quand on ne conna�t pas les fonctions, on a sa "t�te" mais puisque c'est d�j� fait, autant utiliser l'existant.
� bient�t
Gilles
Partager