Konvertieren Sie eine hexadezimale Zeichenfolge in eine Binärdatei und schreiben Sie in eine Binärdatei
** [Methode 1] Verwenden Sie to_bytes () ** Weil Sie vielleicht den Endian ändern möchten Führen Sie in der Reihenfolge der Zeichenfolge → int → Bytes (binär).
str_to_bin.py
moji = '01020304'
suuchi = int(moji,16)
bytes_big = suuchi.to_bytes(4, byteorder='big')
bytes_little = suuchi.to_bytes(4, byteorder='little')
print(bytes_big)
print(bytes_little)
wf = open('write_test.bin', 'wb')
wf.write(bytes_big)
wf.write(bytes_little)
** Druckergebnis **
16909060
b'\x01\x02\x03\x04'
b'\x04\x03\x02\x01'
** [Methode 2] ** Führen Sie in der Reihenfolge der Zeichenfolge → int → Bytes (binär). Da to_bytes () nur mit python3 verwendet werden kann, verwenden Sie struct.
str_to_bin_2.py
import struct
moji = '01020304'
suuchi = int(moji,16)
bytes_big =struct.pack(">L",suuchi)
bytes_little =struct.pack("<L",suuchi)
** [Methode 3] ** Wenn Sie nicht in Endian konvertieren möchten, können Sie unten von der Zeichenfolge in Bytes (binär) konvertieren.
str_to_bin_3.py
moji = '01020304'
moji_bin = binascii.unhexlify(moji)
Referenzlink unten
[Umgang mit Hexadezimalzahlen in Python](http://kaworu.jpn.org/python/Python%E3%81%A716%E9%80%B2%E6%95%B0%E3%82%92%E6%89 % B1% E3% 81% 86) Python | 2-Komplement (signiert) int ⇔ Bytes ⇔ str (hexagonale Zeichenfolge) Numerisch-> Binär-> Sechseckiger String-> Binär-> In Python in Numerisch konvertieren.
[7.1. Struct - Byte-String als gepackte Binärdaten interpretieren] (https://docs.python.jp/3/library/struct.html) 19.8. Binascii - Konvertierung zwischen Binärdaten und ASCII-Daten
Recommended Posts