Hex

cs_helena123 Messages postés 22 Date d'inscription mardi 4 mars 2003 Statut Membre Dernière intervention 25 août 2003 - 1 août 2003 à 14:35
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 - 1 août 2003 à 22:39
Je debute dans la programmation et je voulais savoir avec BC++, comment on fait pour faire apparaitre un nombre en hexadecimal a l ecran (ListBox1) a partir d un entier saisi au clavier (Edit1) ?
un gramd merci a tous ,
BisouXXX

6 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 août 2003 à 15:13
char szbuff[20];
ultoa(nbr, szbuff, 16);
SendMessage(hlstbox, LB_ADDSTRING, 0, (long) szbuff);
BruNews, ciao...
0
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
1 août 2003 à 16:08
Ou tu peut le formater :
char buf[256];
sprintf(buf,"nome de dec : %d\n nombre en hex : %x",nb,nb);

%x designe l'hexadecimam
%d le decimal

:-p :-p :-p :shy) :-p :-p :-p :shy) :-p :-p :shy)
:shy) :-p :shy) :shy) :-p :shy) :shy) :shy) :-p :shy) :-p
:shy) :-p :shy) :shy) :-p :shy) :shy) :shy) :-p :shy) :-p
:-p :-p :shy) :shy) :-p :-p :-p :shy) :-p :-p :shy)
0
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
1 août 2003 à 20:54
je ne saurais trop te conseiller cependant

char buff[15];

_snprintf(buff, 15, "%x", ton_nombre_decimal);

256 est tout simplement inutile car un entier ne pourra pas depasser 2 exposant 32 a savoir 12 chiffre, donc 15 est grandement suffisant

(tu fera comment si tu veux ecrire un serveur qui doit gerer 5'000 users jcd, tu codera l'id des client sur 1 kilo ? :))

de plus, sprintf peux parfois etre dangereux car un bufferoverflow est vite arriver :)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 août 2003 à 21:37
Vois que il composait toute une phrase dans le buffer.
Pour mon compte je lui prefere toujours ultoa() beaucoup plus rapide que sprintf et ses variantes.
BruNews, ciao...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
1 août 2003 à 21:44
je reconnais que sprintf et ses variantes sont lentes :)

pour ce qui est du snprintf au lieu de sprintf, c'est toujours valable
0
cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
1 août 2003 à 22:39
sebseb42,
tu dis que "char buff[15];" est suffisant
Puis que "de plus, sprintf peux parfois etre dangereux car un bufferoverflow est vite arriver :)"

Il faut savoir !!!!!

Mais une maniere d'etre sur que ca ne prendra pas + de 20 caracteres :

sprintf(buf,"%019x");

(on en garde un pour le \0 )

:-p :-p :-p :shy) :-p :-p :-p :shy) :-p :-p :shy)
:shy) :-p :shy) :shy) :-p :shy) :shy) :shy) :-p :shy) :-p
:shy) :-p :shy) :shy) :-p :shy) :shy) :shy) :-p :shy) :-p
:-p :-p :shy) :shy) :-p :-p :-p :shy) :-p :-p :shy)
0
Rejoignez-nous