在尝试估算存储所有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 :(得分:0)
你的4 GB实际上是4.2 GB吗?
您可能会看到号码4,294,967,295
被用作32-bit integers的最大值。
这是因为(如果用作无符号字节):
正确的公式是:(2^32) − 1 = 4294967295
。