2016-11-28 4 views
0

Ich experimentiere mit Bytes in Python 3 und ich bekomme ein seltsames Ergebnis. Wenn ich ein Zeichen in Hex umwandle, erhalte ich ein vorhersagbares Ergebnis. ord('t') == 116, die 7 * 16 + 4. da vernünftig Dies ist gleich:Aufruf eines Index in Bytes

binascii.hexlify(b't') == b'74' 

Was ich nicht verstehe, warum b'74'[0] == 55 ist. Woher kommt die 55?

+2

55 = 0x37 ist der ASCII-Code für '7', dh, 'chr (55) == '7'' –

Antwort

1

b'74'[0] ist '7'. Zeichen '7' ist 55 in ASCII

+0

so interpretiert es die Bytes einzeln, wenn Sie es aufrufen, anstatt sie zu betrachten Paar wie im Hex. – Rob

+0

@Rob Sie sind immer noch beide Zeichenketten also iterierbar daher können Sie durch ihre Indizes auf Symbole zugreifen. –

+1

@Rob 'b'74'' ist ein literales Byte-Objekt, das zwei Bytes enthält. Sehen Sie sich 'b't' [0] ' –

Verwandte Themen