0的python bit_length()返回意外值

0的python bit_length()返回意外值,python,binary,bit,Python,Binary,Bit,为什么0的位长度返回0而不是1 >>> int(0).bit_length() 0 >>> int(2).bit_length() 2 二进制中的2是表示两位的0x10,二进制中的零不是在技术上仍然占用1位,因为它在十六进制中的表示是0x0吗?Python文档状态 更准确地说,如果x是非零的,那么x.bit_length()是唯一的 正整数k,使得Python文档中的状态为2**(k-1) 更准确地说,如果x是非零的,那么x.bit_length()是唯一

为什么0的位长度返回0而不是1

>>> int(0).bit_length()
0

>>> int(2).bit_length()
2

二进制中的2是表示两位的0x10,二进制中的零不是在技术上仍然占用1位,因为它在十六进制中的表示是0x0吗?

Python文档状态

更准确地说,如果x是非零的,那么x.bit_length()是唯一的
正整数k,使得Python文档中的状态为2**(k-1)

更准确地说,如果x是非零的,那么x.bit_length()是唯一的
正整数k,因此2**(k-1)请阅读 这是解释。 这就是函数的工作原理。如果发送0,它将输出0

如果x为零,则x.bit_length()返回0


请阅读有关的文档 这是解释。 这就是函数的工作原理。如果发送0,它将输出0

如果x为零,则x.bit_length()返回0


这些都是理论界限。实际上,所有整数都由一定数量的字节表示,因此您不妨问问为什么
bit\u length()
不总是返回8的非零倍数。这些是理论界。实际上,所有整数都由一定数量的字节表示,因此您不妨问问为什么
bit\u length()
不总是返回8的非零倍数。