Ce face bytes.hex() și bytes.fromhex()
hex() scrie fiecare octet ca două cifre hexazecimale. Din Python 3.8 poți adăuga un separator între octeți (sau între grupuri de octeți, cu bytes_per_sep). bytes.fromhex() face operația inversă și ignoră spațiile din text.
Sunt utile pentru afișarea sumelor de control (hash-uri), a adreselor MAC sau a datelor binare din protocoale.
Parametri
| Parametru | Descriere |
|---|---|
sep |
Opțional. Separatorul dintre octeți (un caracter). |
bytes_per_sep |
Opțional. Câți octeți într-un grup. |
text |
Pentru fromhex: textul hexazecimal. |
Ce returnează
hex: un text. fromhex: bytes.
Exemple
Exemplul 1: Conversii în ambele sensuri
date = "Iași".encode()
print(date.hex())
print(date.hex(" "))
print(bytes.fromhex("49 61 c8 99 69").decode())
mac = bytes([0x00, 0x1A, 0x2B, 0x3C, 0x4D, 0x5E])
print(mac.hex(":"), mac.hex("-", 2))
Rezultat
4961c89969
49 61 c8 99 69
Iași
00:1a:2b:3c:4d:5e 001a-2b3c-4d5e
Greșeli frecvente
- Dai lui
fromhex()un text cu prefixul0xsau cu număr impar de cifre și primeștiValueError.
Comenzi înrudite
bytes() și bytearray(): Secvențe de octeți (valori 0-255) pentru date binare: fișiere, rețea, text codificat.bin(), oct() și hex(): Transformă un număr întreg în text scris în baza 2, 8 sau 16.float.hex() și float.fromhex(): Scrie un număr zecimal în format hexazecimal exact și îl citește înapoi.