Convertir Byte a Hex en Python

Rayven Esplanada 30 enero 2023
  1. Iniciar un Byte Literal en Python
  2. Use el método hex() para convertir un byte en hexadecimal en Python
  3. Usar el módulo binascii para convertir un byte a hexadecimal en Python
Convertir Byte a Hex en Python

Este tutorial introducirá cómo convertir los bytes en hexadecimal en Python.

El tipo de datos de los bytes en Python es una secuencia de bytes que puede ser almacenada en el disco como una variable, que luego puede ser codificada y decodificada. Se declaran como una cadena pero con el prefijo del carácter b. Los bytes aceptan caracteres especiales Unicode prefijados con \x.

Iniciar un Byte Literal en Python

Daremos un ejemplo de un literal de byte, declararemos una cadena con caracteres especiales, y usaremos la función encode('utf-8') para convertirla en un literal de byte.

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

print(byte_var)

Resultado:

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

La salida de encode() resultará en un literal de byte prefijado con el carácter b y los caracteres especiales convertidos en símbolos Unicode.

Ahora que la declaración de un byte está cubierta, procedamos a convertir un byte en hexadecimal.

Use el método hex() para convertir un byte en hexadecimal en Python

El hex() método introducido desde Python 3.5 lo convierte en una cadena hexadecimal.

En este caso, el argumento será de un tipo de datos de byte que se convertirá en hexadecimal.

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

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

Resultado:

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

Usar el módulo binascii para convertir un byte a hexadecimal en Python

El módulo Python binascii contiene eficientes funciones de utilidad para operaciones binarias y ASCII.

Dentro de este módulo, hay una función hexlify() que devuelve un valor hexadecimal del argumento dado, que es un valor binario.

En este ejemplo, el argumento será la variable de byte que se convertirá en hexadecimal.

import binascii

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

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

Resultado:

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

Tenga en cuenta que el valor de retorno de hexlify() devuelve un byte literal, a diferencia de hex(), que devuelve una cadena convertida.

Si quiere convertir el resultado en una cadena, use la función 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"))

Resultado:

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

Ahora el resultado hexadecimal se convierte en una cadena de un byte literal.

En resumen, hemos cubierto 2 métodos para convertir un byte a hexadecimal en Python. La forma más simple es usar la función incorporada hex() a un literal de byte. Alternativamente, la función hexlify() del módulo binascii también puede ser usada para producir la misma salida.

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

Artículo relacionado - Python Bytes

Artículo relacionado - Python Hex