Python bit functions on int with examples
In this tutorial, we are going to learn about some bit functions on int in Python i. e. bit_length(), to_bytes() and from_bytes(). Let’s discuss these functions one by one.
int.bit_length()
This function returns the number of bits required to represent a number in binary. It excludes the sign bit and all the leading zeroes. See the given example code to understand the working of this function.
int1 = 12 print(int1.bit_length()) int2 = 1 print(int2.bit_length()) int3 = -1 print(int3.bit_length())
The output for the example program:
4 1 1
int.to_bytes()
As its name suggests, this function returns an array of bytes that represent an integer. Have a look at the given example code that explains its working.
int1 = 12 print(int1.to_bytes(2, byteorder = 'big')) int2 = 1 print(int2.to_bytes(2, byteorder = 'big'))
Output:
b'\x00\x0c' b'\x00\x01'
In the above code, there are two arguments in to_bytes() function. value 2 specifies the length and ‘big’ specifies that the order of bytes is big-endian.
To use this function with negative values we will need to use the third argument as shown below.
int1 = -1 print(int1.to_bytes(2, byteorder = 'big', signed = True))
Output:
b'\xff\xff'
When we make signed = True, the function accepts negative values, otherwise, it throws an error. The default value for the signed parameter is False.
int.from_bytes()
This is the reverse of the to_bytes() function. It takes an array of bytes as input and converts it into an integer. See the below code.
print(int.from_bytes(b'\x00\x0c', byteorder = 'big')) print(int.from_bytes(b'\x00\x01', byteorder = 'big'))
Output:
12 1
For negative numbers, make the signed parameter as True as shown here.
print(int.from_bytes(b'\xff\xff', byteorder = 'big', signed = True))
Output:
-1
Hope this article was helpful. Thank you.
Also read: How to Convert a float array to int in Python: NumPy?
Leave a Reply