hexadécimal

ducati748

XLDnaute Nouveau
Bonjour,
j'aurai 2 questions SVP pour qui veux bien m'aider à faire la lumière sur un problème:

1/ j'ai une valeur hexadecimal "E6" qui après une conversion (ou lecture, ou autre calcul) que je ne trouve pas, devient "67" (à priori toujours en hexa, pas en dec)
(lu sur un forum)
le seul indice que j'ai ce serait "une lecture en arrière" ("read backward") mais y'a un truc qui doit m'echapper, j'ai beau retourner la valeur dans tout les sens je ne vois pas quel formule est utilisée pour arriver à ce résultat... une idée ??

2/ Ensuite, ce serait du coup voir comment transposer cette formule encore inconnu pour moi, dans excel ! :)

merci pour le coup de main !!
 
Dernière édition:

ducati748

XLDnaute Nouveau
Merci de vos réponses
En effet c'est pas forcement clair, désolé
(mais c'est aussi que justement je ne comprend pas la convertion..)

pour plus d'info, c'est une ligne de valeurs hexadécimales à la suite
par exemple

F0 00 00 00 00 08 EA D2

va devenir

0F 00 00 00 00 10 57 4B

(ou dans le précédent exemple ça c'était "E6" à la place de "F0", et qui devennait "67" etc etc )


avec indiqué comme indication "Do bit reverse on every byte" mais je comprend pas :confused:

j'ai l'impression que c'est un truc tout bête !!! ça m'énerve de ne pas bien connaitre le système hexacédimal :(

Merci
 

Dranreb

XLDnaute Barbatruc
Le système hexadécimal n'a rien de compliqué en ce sens qu'il est couramment utilisé pour représenter une configuration binaire. Chaque chiffre (de 0 à 9 puis A à F) représente 4 bits.
Un byte (en français octet, 8 bits) se représente donc par 2 chiffres hexa.
Il faudrait livrer plus d'information sur le document où vous trouvez ça.
 

ducati748

XLDnaute Nouveau
Merci
oui je connais un peu les bases, mais pas vraiment les calculs possibles dans ce système ( par exemple en fouillant sur internet je vois des opérations de type "bitwise" pour inverser une valeur hexadecimal, etc.., ce genre de calcul)

En ce qui concerne la provenance, ce n'est pas un document, mais une zone d'adressage d'un eeprom.
(les adresses hexadecimales qui sont avant ou après, sont indépendantes de cette série de valeurs)

et l'idée c'est que si j'arrive à déterminer la formule qui va bien, je m'étais imaginé rentrer sous excel la série "brut" de l'eeprom, et avoir le résultat à coté après conversion.
 

Dranreb

XLDnaute Barbatruc
Votre "Do bit reverse on every byte" met quand même un peu la puce à l'oreille.
Essayez ça dans un module standard :
VB:
Option Explicit

Sub Test()
MsgBox "RevBits(&H" & Hex(&HE6) & ") = &H" & Hex(RevBits(&HE6))
End Sub

Function RevBits(ByVal X As Byte) As Byte
Dim P%: For P = 0 To 7
  If X And 2 ^ P Then RevBits = RevBits Or 2 ^ (7 - P)
  Next P
End Function
 

Dranreb

XLDnaute Barbatruc
Autre test, avec solution pour convertir un texte hexa en nombre :
VB:
Sub Test2()
Dim P&, E$, TS$(1 To 8)
E = "F0 00 00 00 00 08 EA D2"
For P = 1 To 8
   TS(P) = Right$("0" & Hex(RevBits(Val("&H" & Mid$(E, P * 3 - 2, 2)))), 2)
   Next P
MsgBox "E = """ & E & """," & vbLf & "S = """ & Join(TS) & """."
End Sub

Function RevBits(ByVal X As Byte) As Byte
Dim P%: For P = 0 To 7
   If X And 2 ^ P Then RevBits = RevBits Or 2 ^ (7 - P)
   Next P
End Function
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
énorme ! ça marche nickel !
(je suis incapable de faire ça)
:rolleyes: mais si ...
;) sans macro regarde :
upload_2017-7-24_19-53-19.png
 

Discussions similaires

Réponses
19
Affichages
2 K

Statistiques des forums

Discussions
312 161
Messages
2 085 855
Membres
103 005
dernier inscrit
gilles.hery