📅  最后修改于: 2023-12-03 15:34:31.761000             🧑  作者: Mango
在Python中,我们可以使用内置的函数bin()
和sys.getsizeof()
来打印所存储整数的位数以及二进制格式的数字。
bin()
函数接受一个整数作为参数,并返回一个以0b
为前缀的二进制字符串。例如,bin(10)
将返回0b1010
。
sys.getsizeof()
函数接受一个对象作为参数,并返回其占用内存的字节数。例如,sys.getsizeof(10)
将返回28
。
下面是一个简单的示例程序,演示如何使用bin()
和sys.getsizeof()
函数来打印位数和二进制格式的数字:
import sys
num = 65535
binary = bin(num)
print("Number: ", num)
print("Binary: ", binary)
print("Binary Size: ", sys.getsizeof(binary), "bytes")
print("Integer Size: ", sys.getsizeof(num), "bytes")
以上代码将输出以下结果:
Number: 65535
Binary: 0b1111111111111111
Binary Size: 42 bytes
Integer Size: 28 bytes
上面的代码首先定义了一个整数num
,然后使用bin()
函数将其转换为二进制字符串。程序接着使用sys.getsizeof()
函数分别打印二进制字符串和整数num
所占内存的字节数。
注意到二进制字符串0b1111111111111111
实际上占用了42个字节,而整数num
却只占用了28个字节。这是因为二进制字符串是一个对象,而整数是一个原始类型,所以后者占用的内存更少。
我们可以看到,Python中的整数和二进制字符串并不是严格固定大小的。这是因为Python会自动调整所需的位数和精度,以便适应给定的值。