Hallo, ich habe ein byte array x=[0xE8,0x4] 0xE8 sind die ersten 8bits 0x4 sind die letzten 8 bits dieses möchte ich in ein int umwandeln dabei sollte irgendetwas um die 1246 rauskommen. Wie kann ich das in python am einfachsten machen???
was genau ist Dein Ziel? High Byte und Low Byte werte-genau in ein Long speichern und zum integer casten?
Max M. schrieb: > Linuxnewbi schrieb: >> 0x4 > > Was soll das sein? Eine Zahl in hexadezimaler Schreibweise?
Max M. schrieb: > Linuxnewbi schrieb: >> 0x4 > > Was soll das sein? Da ist wohl 0x04 gemeint. Ja, 0x4 ist auch nicht falsch, aber Konventionen sind für alle da.
Linuxnewbi schrieb: > 0xE8 sind die ersten 8bits > 0x4 sind die letzten 8 bits Die "ersten"/"letzten"? was soll das sein? Wohl eher HigByte = 0x04, LowByte = 0xE8. Linuxnewbi schrieb: > 1246 rauskommen 0x04E8 = 1.256
Linuxnewbi schrieb: > in python am einfachsten Seit Python 3.2 gibt es die Methode int.from_bytes(). Das kann man auch die Endianess und das Vorzeichen berücksichtigen.
was schrieb: > Da ist wohl 0x04 gemeint. Ja, 0x4 ist auch nicht falsch, aber > Konventionen sind für alle da. Welche Konvention soll das denn sein? Ich kenne nur die Konvention führende Nullen wegzulassen.
py schrieb: > Welche Konvention soll das denn sein? Die Konvention, dass man 1 Byte als 2 Hexadezimalstellen darstellt, inkl. aller führenden Nullen. Das vereinfacht die tabellarische Darstellung. Glaubst du nicht? Dann hast du noch nie einen Hex-Editor benutzt.
was schrieb: > py schrieb: >> Welche Konvention soll das denn sein? > > Die Konvention, dass man 1 Byte als 2 Hexadezimalstellen darstellt, > inkl. aller führenden Nullen. > Das vereinfacht die tabellarische Darstellung. > > Glaubst du nicht? Dann hast du noch nie einen Hex-Editor benutzt. Ist für die Frage und Antwort völlig unrelevant
was schrieb: > Die Konvention, dass man 1 Byte als 2 Hexadezimalstellen darstellt, > inkl. aller führenden Nullen. Nicht in Python. https://docs.python.org/3/reference/lexical_analysis.html#integer-literals
Der Vollständigkeit halber: Wenn es komplizierter als 2 Bytes wird, gibt es https://docs.python.org/3/library/struct.html
1 | from struct import unpack |
2 | a = b'\xE8\x04' |
3 | print( unpack('H', a) ) |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.