📜  Python程序打印位数以存储整数以及二进制格式的数字(1)

📅  最后修改于: 2023-12-03 15:34:31.761000             🧑  作者: Mango

Python程序打印位数以存储整数以及二进制格式的数字

简介

在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会自动调整所需的位数和精度,以便适应给定的值。