首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python变量(字节)

Python变量(字节)
EN

Software Engineering用户
提问于 2018-02-20 16:21:57
回答 1查看 2.1K关注 0票数 -4

从理论上说,如果我错了,请纠正我,它说,在数字int的情况下,一个9最多可以占用4位。

我还没有编写过低级语言,但我假设c和python中的数据类型不应该不同。

我想知道Python中int占用24个字节的原因是什么

此外,如果有人可以解释如何计算一个字符的位/字节。

谢谢

代码语言:javascript
复制
>>> 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
>>>
EN

回答 1

Software Engineering用户

回答已采纳

发布于 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位整数一起工作。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/366263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档