Python - How To Convert Byte to Hex in Python

ID : 130

viewed : 75

Tags : PythonPython BytesPython Hex

vote vote

90

This tutorial will introduce how to convert bytes into hexadecimal in Python.

The byte data type in Python is a sequence of bytes that can be stored on the disk as a variable, which can then be encoded and decoded. They are declared like a string but prefixed by the character b. Bytes accept special Unicode characters prefixed with \x.

Initialize a Byte Literal in Python

We will give an example of a byte literal, declare a string with special characters, and use the function encode('utf-8') to convert it to a byte literal.

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

Output:

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

The output of encode() will result in a byte literal prefixed with the character b and the special characters converted into Unicode symbols.

Now the declaration of a byte is covered, let’s proceed with converting a byte into hex.

Use the hex() Method to Convert a Byte to Hex in Python

The introduced from Python 3.5 converts it into a hexadecimal string.

In this case, the argument will be of a byte data type to be converted into hex.

byte_var = 'γιαούρτι - yogurt'.encode('utf-8')   print('Byte variable: ', byte_var) print('Hexadecimal: ', byte_var.hex()) 

Output:

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

Use the binascii Module to Convert a Byte to Hex in Python

The Python module contains efficient utility functions for binary and ASCII operations.

Within this module, there is a function hexlify() that returns a hexadecimal value of the given argument, which is a binary value.

In this example, the argument will be the byte variable to be converted into hex.

import binascii  byte_var = 'γιαούρτι - yogurt'.encode('utf-8')   print('Byte variable: ', byte_var) print('Hexadecimal: ', binascii.hexlify(byte_var))  

Output:

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

Take note that the return value of hexlify() returns a byte literal, unlike hex(), which returns a converted string.

If you want to convert the result into a string, use the function 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')) 

Output:

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

Now the hexadecimal result is converted into a string from a byte literal.

In summary, we’ve covered 2 methods of converting a byte to hex in Python. The simplest way is to use the built-in function hex() to a byte literal. Alternatively, the hexlify() function from the binascii module can also be used to produce the same output.

  • Related HOW TO?