我正在编写Python代码来做一些大的数字计算,并且非常关心计算中使用的内存。
因此,我想计算每个变量的每一位数。
例如,我有一个变量x,它是一个很大的数字,并且想要计算表示x的位数。
下面的代码显然是无用的:
x=2**1000
len(x)
因此,我转而使用以下代码:
x=2**1000
len(repr(x))
变量x为(十进制)为:
10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376
但上面的代码返回303
上面的长长序列的长度是302,所以我认为303应该只与字符串长度有关。
所以,我的原始问题来了:
如何知道变量x的内存大小?
还有一件事;在C/C++语言中,如果我定义
int z=1;
这意味着有4个bytes= 32位被分配给z,并且这些位被排列为00..001(310和1)。
这里,我的变量x很大,我不知道它是否遵循相同的内存分配规则?
https://stackoverflow.com/questions/14372006
复制相似问题