codage hexadécimal vers chiffres normaux. Mais...

codage hexadécimal vers chiffres normaux. Mais... - Divers - Programmation

Marsh Posté le 26-05-2010 à 17:13:30    

bonjour tout le monde
 
Ce genre de question a dut être poser de nombreuses fois mais mon code hexa semble different de ceux que j'ai put trouver... Donc je n'arrive pas à le décoder.  
Et cela fait des heures que je cherche sur internet sans succes!
 
Voila ma question:
 
comment faire pour trouver 2347 dans le codage hexadecimal suivant:http://files.getwebb.org/files/89/4a/5f/d6423724b08ba3cac9e481ff3e012b6854/source.png
? ? ?  
 
Logiquement 2347 y ai car  
1) je l'ai mis dans mon fichier lut par l'editeur hexa.
2) si je lance une recherche avec ce nombre dans mon éditeur exa (option de recherche "decimal" ) il me renvois sur ce code hexa.  
 
Donc ce code represente bien 2347 mais comment en faire la conversion ?
 
Je precise que lorsque j'ouvre dans mon editeur hexa un simple fichier texte (.txt) avec 2347 à l'intérieur, il me l'affiche en clair a droite (ASCII Etendu je crois) et aussi j'arrive à décoder le code hexa pour en faire 2347 grace à une table "chiffre normaux" > "hexa" que j'ai trouver ici
 
Mais, avec le code hexa que je vous ai donner, je n'arrive à rien. Voila tout le problème...  
 
 


---------------

Reply

Marsh Posté le 26-05-2010 à 17:13:30   

Reply

Marsh Posté le 26-05-2010 à 19:30:46    

C'est la partie "2b 09", 2347 écrit en hexa avec l'octet le moins significatif en premier.


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 27-05-2010 à 01:41:31    

"octet le moins significatif en premier" je comprend pas ce que cela signifi. J'ai chercher avec ça mais rien trouver qui puisse m'aider.  
 
que faut il faire comme calculs pas trop compliquer pour trouver 2347 avec 2b 09 (ou a partir du binaire 00101011 00001001) ? J'aimerais comprendre comment y arriver.


---------------

Reply

Marsh Posté le 27-05-2010 à 10:54:58    

2347 = 0x2b + 0x09 * 256 =  (2 * 16 + 11) + (0 * 16 + 9) * 256
 


---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

Marsh Posté le 27-05-2010 à 17:20:48    

Mais comment tu obtient 11, 0, 2 et 9 ? et je présume que 16 et 256 sont communs quelque soit la valeur de mes codages hexa?


---------------

Reply

Marsh Posté le 27-05-2010 à 18:57:29    

2b  -> 2 = 2 b = 11
09  -> 0 = 0 9 = 9


---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

Marsh Posté le 27-05-2010 à 21:42:12    

Ok j'ai compris merci ! Mais tu a oublier 2 parentheses  

Un Programmeur a écrit :

2347 = 0x2b + 0x09 * 256 =  (2 * 16 + 11) + (0 * 16 + 9) * 256

= 13312
il aurait donc fallut plutot faire:
= (2 * 16 + 11) + ((0 * 16 + 9) * 256)
 
Et j'ai encore une derniere question:
si mon codage est constitué de 3 ou plus de couple de caracteres (je ne connais pas le terme exacte) comment je fait ? Et si il y en a qu'un ?
Exemple 1 : f2 03 c0
Exemple 2 : f2


Message édité par -cas- le 27-05-2010 à 22:55:27

---------------

Reply

Marsh Posté le 29-05-2010 à 18:59:14    

Dites moi si je dit des bétise... (et dites moi aussi si je n'en dit pas! Ou si vous préférer, ne dites rien :( ). J'explique comment on fait pour les nuls (comme je n'est rien trouver sur le net je vais en profiter pour tout bien expliquer :o )
 
Alors mon codage hexadécimal est spécial. Un fichier que j'ouvre dans mes éditeurs hexa me donne la valeur de deux manière différente pour plusieurs nombre dans mon fichier. Pour l'un des nombre la valeur en chiffre normaux apparait en clair dans la colonne ASCII étendu, et pour l'autre je n'est que des caractères spéciaux dans la colonne ASCII étendu (c'est donc celui ci qu'il est difficile à décoder, normal mon nombre ne s'affiche pas en clair!).  
Codage classique : 2347 = 23 33 34 37.  
Codage "bissare" d'on je ne trouve nulle par aucun convertisseur ou table de conversion vers des chiffres normaux (si vous avez une adresse...) : 2347 = 2b 09
 
J'explique comment faire pour avoir des chiffres normaux avec ce dernier type d'affichage :
 
 
 
Alors on convertis la/les lettre(s) (s'il y en a une ou plusieurs) en décimal et cela vaut quelque soit sa/leurs position.
 
La lettre est en hexadecimal = convertis en décimal:
A = 10
B = 11
C = 12
D = 13
E = 14
F = 15
 
 
Exemple avec f2 03 (le "f" hexa vaut donc "15" en décimal).
 
(On garde 16 et 256 pour tout les calcules).
 
Et on ajoute simplement entre les deux caractère de chaque couple de notre codage hexa, un "x 16 +". Entre la valeur du f et du 2 et entre 0 et 3 donc  
-> (15 x 16 + 2) + ((0 x 16 + 3) x 256) = 1010  
 
f2 03 = 1010 !
 
Ou encore :
f2 03 = f(c1) 2(c2)  0(c3) 3(c4)
Valeur en chiffre normaux = (c1 x 16 + c2) + ((c3 x 16 + c4) x 256)
 
 
Voila. C'est tout bête.
 
 
Mots clés  
hexadécimal en chiffres normaux. Codage hexadécimal particulier codage hexadécimal spécial codage hexadécimal étrange


---------------

Reply

Marsh Posté le 30-05-2010 à 09:16:20    

Ce que tu appelles bizarre est l'hexadécimal normal:
 
http://fr.wikipedia.org/wiki/Notation_positionnelle
 
http://fr.wikipedia.org/wiki/Hexadecimal
 
Ce que tu appelles classique est un codage de caractères (et non de nombres, donc ce qui est codé ce sont des chiffres)
 
http://www.bourguet.org/v2/cs/charset/


---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

Marsh Posté le 01-06-2010 à 18:11:14    

j'ai été voir tes liens, merci (meme si j'ai pas tout compris!.. pas grave)


---------------

Reply

Sujets relatifs:

Leave a Replay

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