Hurry! Try our new Interactive Courses for FREE. 🥳   🚀
  Signup/Sign In

How To Convert Byte To Hex in Python

In the Python programming language, bytes are like an array. When we want to represent a group of byte values then we can consider bytes() data types. The bytes data types allow values only from 0 to 255. The hex() is one of the built-in functions in python. It converts the specified integer to the corresponding hexadecimal value. It is prefixed with "0x". It returns a hexadecimal string.

In this tutorial, we will learn how to convert bytes to a hexadecimal value using the hex() method and binascii module.

Example: Getting Bytes Object from String

As we all know how to convert any integer or string to a bytes object. Let us start with converting a string to a bytes object. Converted string i.e., bytes object can be used to convert hexadecimal values.

string="March"
print("String to be converted :",string)

byte_data=bytes(string,"utf-16")

print("This is the bytes object.")
print("Converted string is:",byte_data)


String to be converted: March

This is the bytes object.
Converted string is: b'\xff\xfeM\x00a\x00r\x00c\x00h\x00'

Example: Converting bytes to hexadecimal using hex() Method

In the above example, we converted the string to a byte object. We can use that byte object to convert it into a hex value.

byte_data="\xff\xfeM\x00a\x00r\x00c\x00h\x00".encode("utf-16")
print("byte to be converted:",byte_data)
print("byte converted to hexadecimal value:",byte_data.hex())
print("Type of this object is:",type(byte_data.hex()))


byte to be converted: b'\xff\xfe\xff\x00\xfe\x00M\x00\x00\x00a\x00\x00\x00r\x00\x00\x00c\x00\x00\x00h\x00\x00\x00'
byte converted to hexadecimal value: fffeff00fe004d00000061000000720000006300000068000000
Type of this object is: <class 'str'>

Example: Converting bytes to hexadecimal using binascii module.

The binascii module consists of various methods which convert binary to various encoded binary representation. In the binascii module, there is a method called hexlify() which converts the bytes to hexadecimal values.

import binascii
string="studytonight"
print("the string is:", string)
in_bytes=bytes(string,"utf-8")
print("string to byte:",in_bytes)
hex_bytes = binascii.hexlify(in_bytes) 
print("hexlify converts the data to hexdecimal value :",hex_bytes) 
hex_str = hex_bytes.decode("ascii")
print("This is the converted hex value:",hex_str)
# To convert hex to bytes 
y=binascii.unhexlify(hex_str)
# unhexlify converts hex value to bytes.
print(y)


the string is: studytonight
string to byte: b'studytonight'
hexlify converts the data to hexdecimal value : b'7374756479746f6e69676874'
This is the converted hex value: 7374756479746f6e69676874
b'studytonight'

Conclusion

In this tutorial, we learned how to convert bytes object to hex value from the hex() function and binascii module.