为什么所有32位整数的数组都需要4 GB?

问题描述:

当我试图估计需要存储多少内存来存储所有32位整数时,我努力想知道4 GB图形来自哪里。为什么所有32位整数的数组都需要4 GB?

32位整数数据类型有32位,可以设置为1或0每位。这是2^32个可能的表示。每个表示需要32位,总共需要32 * 2^32位,或者2^5 * 2^32 = 2^37位。

而2^37位大约是17 GB,而不是4 GB。

我哪里错了?

+0

你有4GB数字的来源吗?一目了然你的工作似乎合理。 –

+0

关于_“4 GB数字来自何时估计”_你如何估算?你存储多少个32位整数? “2^5”来自“2^5 * 2^32 = 2^37”的位置? –

你的4 GB实际上是4.2 GB吗?

您可能会看到号码4,294,967,295用作32-bit integers的最大值。

这是因为(如果使用作为无符号字节):

正确公式为:(2^32) − 1 = 4294967295