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

时间:2017-08-24 00:02:07

标签: memory integer byte bit 32-bit

在尝试估算存储所有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。

我哪里错了?

1 个答案:

答案 0 :(得分:0)

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

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

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

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