Q:

Python program to print an array of bytes representing an integer

belongs to collection: Python miscellaneous programs

0

Given an integer number and we have to convert it into a byte array in Python.

To convert an integer number into bytes (byte array), we use to_bytes() method of int class, it is called with the number with three arguments and returns a byte array representing the number.

Syntax:

    int.to_bytes(size, byteorder)

Here,

  • size is the maximum size (in bytes) of the number.
  • byteorder is the technique to print the bytes, it has two values big to print bytes array in big-endian format and little to print bytes array in little-endian format.

Example:

    Input:
    num = 100

    # function call
    print(num.to_bytes(2, byteorder ='big'))

    Output:
    b'\x00d'

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

Python code to convert an integer number to bytes array

# Python program to find number of bits 
# necessary to represent an integer in binary

# input a number
num = int(input("Enter an integer number: "))

# total bits to represent number
bits = num.bit_length()

print("bits required to store ", num, " = ", bits)
print("binary value of ", num, " is = ", bin(num))

Output

First run:
Enter an integer number: 67
bits required to store  67  =  7
binary value of  67  is =  0b1000011

Second run:
Enter an integer number: 3
bits required to store  3  =  2
binary value of  3  is =  0b11

If number is longer than 2 bytes value,

If the input number is larger than 2 bytes and we used size "2 bytes" with the to_bytes() method, then an "OverflowError" error ("int too big to convert") will occur.

Enter an integer number: 12387615
Traceback (most recent call last):
  File "/home/main.py", line 8, in <module>
    x = num.to_bytes(2, byteorder ='big')
OverflowError: int too big to convert

to_bytes() array with size "4 bytes"

In the previous example, we used size "2 bytes", if the number is larger than it, we can increase the size. Here, in this example – we are using size "4 bytes", thus, we can convert an integer till 4 bytes.

# Python program to print an array of bytes 
# representing an integer

# input an integer number
num = int(input("Enter an integer number: "))

# finding the byte array
x = num.to_bytes(4, byteorder ='big')

# printing byte array
print("x = ", x)

Output

First run:
Enter an integer number: 12387615
x =  b'\x00\xbd\x05\x1f'

Second run:
Enter an integer number: 9999876
x =  b'\x00\x98\x96\x04'

Printing the bytes array in little-endian format

To print bytes array of an integer number, we can define byteorder value with little. In this example, we are converting an integer number (till 4 bytes) to bytes array in little-endian order.

# Python program to print an array of bytes 
# representing an integer

# input an integer number
num = int(input("Enter an integer number: "))

# finding the byte array
x = num.to_bytes(4, byteorder ='little')

# printing byte array
print("x = ", x)

Output

First run:
Enter an integer number: 12387615
x =  b'\x1f\x05\xbd\x00'

Second run:
Enter an integer number: 9999876
x =  b'\x04\x96\x98\x00'

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

Python miscellaneous programs

This question belongs to these collections

Similar questions


need a help?


find thousands of online teachers now
Python program to print the binary value of the nu... >>
<< Python program to print number of bits to store an...