int 上的Python位函数(bit_length、to_bytes 和 from_bytes)
int 类型实现numbers.Integral 抽象基类。
1. int.bit_length()
返回以二进制表示整数所需的位数,不包括符号和前导零。
演示代码
num = 7
print(num.bit_length())
num = -7
print(num.bit_length())
输出:
3
3
2. int.to_bytes(length, byteorder, *, signed=False)
返回表示整数的字节数组。如果 byteorder 为“大”,则最高有效字节位于字节数组的开头。如果 byteorder 为“little”,则最高有效字节位于字节数组的末尾。有符号参数确定是否使用二进制补码来表示整数。
# Returns byte representation of 1024 in a
# big endian machine.
print((1024).to_bytes(2, byteorder ='big'))
输出:
b'\x04\x00'
3. int.from_bytes(bytes, byteorder, *, signed=False)
返回由给定字节数组表示的整数。
# Returns integer value of '\x00\x10' in big endian machine.
print(int.from_bytes(b'\x00\x10', byteorder ='big'))
输出:
16