从理论上说,如果我错了,请纠正我,它说,在数字int的情况下,一个9最多可以占用4位。
我还没有编写过低级语言,但我假设c和python中的数据类型不应该不同。
我想知道Python中int占用24个字节的原因是什么
此外,如果有人可以解释如何计算一个字符的位/字节。
谢谢
>>> var = 1
>>> import sys
>>> print sys.getsizeof(var)
24
>>> var = 'Raheel'
>>> print sys.getsizeof(var)
43
>>> var = 2
>>> print sys.getsizeof(var)
24
>>> var = 'R'
>>> print sys.getsizeof(var)
38
>>>发布于 2018-02-20 17:00:16
分配单元不能小于1字节。对于一个1位变量(一个布尔值),您必须至少分配8位,其中7位未使用。
现代CPU工作在64位(8字节),有些在32位=4字节;16位嵌入式控制器是常见的,8位控制器已经很少见了。RAM在更大的宽度下也能更有效地工作,并且通常期望在4字节的边框上对齐有效的获取。这就是为什么一个1位的值甚至可以占用4个字节的内存.
Python整数是一个对象。是的,您可以在整数常量:(1).__add__(2)或(100).bit_length()上调用方法。这意味着实际的整数值与许多其他信息一起存储。
Python整数试图适应数据的大小,更重要的是,在Python 3中,任意长度的整数都是同一类型的对象,只是分配了足够多的字节来存储值。
您确实可以打包小幅度的值,以便更有效地使用可用的位。这是常见的存储格式,特别是在带宽很重要的地方。例如,GPU可以处理以各种方式打包的纹理,包括整数和(短)浮点数。大多数现代CPU都有“矢量指令”,可以与封装在32位或64位寄存器中的几个独立的16位和8位整数一起工作。
https://softwareengineering.stackexchange.com/questions/366263
复制相似问题