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