[C] Filtrer un nombre en hexa

Filtrer un nombre en hexa [C] - Programmation

Marsh Posté le 10-11-2001 à 18:15:34    

J'ai un nombre en hexa, mettons FF26 (toujours 4 caracteres au maximum).  
 
Je cherche a le filtrer pour le scinder en deux pour obtenir d'un cote FF, de l'autre 26. Il me faudrait deux strings ce serait facile, mais la il faut que je recupere FF et 26 comme deux hexa.
 
Ca doit etre tout bete mais je vois pas.
 
 Qqun aurait-il une solution ?
 
Merci.

Reply

Marsh Posté le 10-11-2001 à 18:15:34   

Reply

Marsh Posté le 10-11-2001 à 18:30:35    

char ton_nombre_hexa[3]  
char nobre_hexa_trans[3]
 
nht[0] = tnh[2];
nht[1] = tnh[3];
nht[2] = tnh[0];
nht[3] = tnh[1];
et  
 
 
....basta

Reply

Marsh Posté le 10-11-2001 à 19:15:35    

short value;
byte result1,result2;
 
result1 = value && 00FF;
value = value >> 2;
result2 = value && 00FF;
 
c'est du free style mais ca devrait fonctionner (en C/C++)

Reply

Marsh Posté le 10-11-2001 à 19:28:50    

la viper a écrit a écrit :

short value;
byte result1,result2;
 
result1 = value && 00FF;
value = value >> 2;
result2 = value && 00FF;
 
c'est du free style mais ca devrait fonctionner (en C/C++)  




 
peut tu detailler plus car je capiche pas trop le principe
tu fait un mask tu decal le tout mais apres tu remasque donc ca derais chier non?

 

[edtdd]--Message édité par koulip31--[/edtdd]

Reply

Marsh Posté le 10-11-2001 à 19:31:27    

la viper a écrit a écrit :

short value;
byte result1,result2;
 
result1 = value && 00FF;
value = value >> 8;
result2 = value && 00FF;
 
c'est du free style mais ca devrait fonctionner (en C/C++)  



Reply

Marsh Posté le 10-11-2001 à 19:49:00    

la je cpaiche mieux

Reply

Marsh Posté le 10-11-2001 à 22:14:39    

Y a encore plus simple sans utiliser d'opérateur de décallage mais ça dépent vachement de la représentation mémoire des variables sur la machine:
 
short nombre;
char res1,res2,*temp;
 
temp=(char *)&nombre;
 
res1=temp[0];
res2=temp[1];
 
mais la solution précédente est mieu quand même :)

Reply

Marsh Posté le 11-11-2001 à 03:02:19    

bon il est tard là .. hum
 
short value = 0xFF26;  
byte result1,result2;  
 
result1 = value <b>&</b> 0x00FF;  
/*je masque pour etre sur de ma valeur soit : 0x0026, comme short vaut 8 bits -> result1 = 0x26*/
value = value >> <b>8</b>;  
/*je decale mon hexa de 8 bits vers la droite, sorry pour le 2, j'avais bu et j'ai donc 0xXXFF*/
result2 = value <b>&</b> 0x00FF;  
/*je masque par securité, rigueur et methode  ;) (comme disait mon prof), et comme result2 est sur 1 octet j'ai 0xFF*/
 
voilou.

Reply

Sujets relatifs:

Leave a Replay

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