Converti byte in esadecimale in Python

Rayven Esplanada 21 dicembre 2022
  1. Inizializza un byte letterale in Python
  2. Usa il metodo hex() per convertire un byte in esadecimale in Python
  3. Usa il modulo binascii per convertire un byte in esadecimale in Python
Converti byte in esadecimale in Python

Questo tutorial introdurrà come convertire i byte in esadecimali in Python.

Il tipo di dati byte in Python è una sequenza di byte che può essere memorizzata sul disco come variabile, che può quindi essere codificata e decodificata. Sono dichiarati come una stringa ma preceduti dal carattere b. I byte accettano caratteri Unicode speciali con prefisso \x.

Inizializza un byte letterale in Python

Forniremo un esempio di un byte letterale, dichiareremo una stringa con caratteri speciali e utilizzeremo la funzione encode('utf-8') per convertirlo in un byte literal.

byte_var = "γιαούρτι - yogurt".encode("utf-8")

print(byte_var)

Produzione:

b'\xce\xb3\xce\xb9\xce\xb1\xce\xbf\xcf\x8d\xcf\x81\xcf\x84\xce\xb9 - yogurt'

L’output di encode() risulterà in un byte letterale preceduto dal carattere b e i caratteri speciali convertiti in simboli Unicode.

Ora la dichiarazione di un byte è coperta, procediamo con la conversione di un byte in esadecimale.

Usa il metodo hex() per convertire un byte in esadecimale in Python

Il metodo hex() introdotto da Python 3.5 lo converte in una stringa esadecimale.

In questo caso, l’argomento sarà di un tipo di dati byte da convertire in esadecimale.

byte_var = "γιαούρτι - yogurt".encode("utf-8")

print("Byte variable: ", byte_var)
print("Hexadecimal: ", byte_var.hex())

Produzione:

Byte variable:  b'\xce\xb3\xce\xb9\xce\xb1\xce\xbf\xcf\x8d\xcf\x81\xcf\x84\xce\xb9 - yogurt'
Hexadecimal:  ceb3ceb9ceb1cebfcf8dcf81cf84ceb9202d20796f67757274

Usa il modulo binascii per convertire un byte in esadecimale in Python

Il modulo binascii Python contiene efficienti funzioni di utilità per operazioni binarie e ASCII.

All’interno di questo modulo, c’è una funzione hexlify() che restituisce un valore esadecimale dell’argomento dato, che è un valore binario.

In questo esempio, l’argomento sarà la variabile byte da convertire in esadecimale.

import binascii

byte_var = "γιαούρτι - yogurt".encode("utf-8")

print("Byte variable: ", byte_var)
print("Hexadecimal: ", binascii.hexlify(byte_var))

Produzione:

Byte variable:  b'\xce\xb3\xce\xb9\xce\xb1\xce\xbf\xcf\x8d\xcf\x81\xcf\x84\xce\xb9 - yogurt'
Hexadecimal:  b'ceb3ceb9ceb1cebfcf8dcf81cf84ceb9202d20796f67757274'

Nota che il valore di ritorno di hexlify() restituisce un byte letterale, a differenza di hex(), che restituisce una stringa convertita.

Se vuoi convertire il risultato in una stringa, usa la funzione decode('utf-8').

import binascii

byte_var = "γιαούρτι - yogurt".encode("utf-8")

print("Byte variable: ", byte_var)
print("Hexadecimal: ", "" + binascii.hexlify(byte_var).decode("utf-8"))

Produzione:

Byte variable:  b'\xce\xb3\xce\xb9\xce\xb1\xce\xbf\xcf\x8d\xcf\x81\xcf\x84\xce\xb9 - yogurt'
Hexadecimal:  ceb3ceb9ceb1cebfcf8dcf81cf84ceb9202d20796f67757274

Ora il risultato esadecimale viene convertito in una stringa da un byte letterale.

In sintesi, abbiamo coperto 2 metodi per convertire un byte in esadecimale in Python. Il modo più semplice è usare la funzione incorporata hex() in un byte letterale. In alternativa, la funzione hexlify() del modulo binascii può anche essere usata per produrre lo stesso output.

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

Articolo correlato - Python Bytes

Articolo correlato - Python Hex