我可以在1GB内存中创建多少个整数?

Max*_*Max 6 language-agnostic integer memory-consumption data-structures

在Robert Sedgewick在第200页的Algorithms第四版中,它说"例如,如果你的计算机上有1GB内存(10亿字节),你就不能超过大约3200万个int值."

在计算之后我感到困惑:1,000,000,000字节/ 4字节= 2.5亿

作者如何获得3200万?

这本书描述如下:

在此输入图像描述

小智 5

1 gigabit = 1073741824 bit
1 int = 32 bit
计算 = (1073741824/32) = (32 * 1024 2 ) = (32 * 2 20 ) = 3200万

如果作者的意思是千兆字节,那么答案将是 (32 * 8) 百万 = 2.56 亿

  • `32 * 2^20 = 33.554.432 != 32000000 = 32*10^6 = 32 百万`。请使用正确的术语。 (2认同)
  • *M* 是标准 [ISU](https://en.wikipedia.org/wiki/International_System_of_Units) 后缀,表示“10^6”。**对于您在任何基础上进行的任何计算**。长期以来,它对 CS 具有特殊的含义,这导致了歧义(从未购买过 HDD?),但现在问题已通过二进制后缀 *Mi* (2^20) 得到解决。继续使用旧的误导性用途是危险的。所以请使用正确的术语。 (2认同)

Max*_*Max 5

作者承认这是本书网站中的错误,请参考以下链接:http : //algs4.cs.princeton.edu/errata/errata-printing3.php