Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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:

djidji59430

XLDnaute Barbatruc
Bonjour,

On peut faire n'importe quoi pour arriver a ton resultat !
par exemple E6-79
sans le fichier pour voir de quoi il retourne, toute réponse serait aléatoire !
D'autre part, excel travaille avec des valeurs hexa

Crdmt
 

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

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
 

Discussions similaires

Réponses
19
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…