在第200頁的Robert Sedgewick的算法第四版中,它說:「例如,如果計算機上有1GB內存(10億字節),則不能容納超過3200萬個int值。」我可以在1GB內存中創建多少個整數?
我得到了我的計算後困惑: 1,000,000,000字節/ 4字節= 2.5億
作者是如何得到3200萬?
書中描述象下面這樣:
在第200頁的Robert Sedgewick的算法第四版中,它說:「例如,如果計算機上有1GB內存(10億字節),則不能容納超過3200萬個int值。」我可以在1GB內存中創建多少個整數?
我得到了我的計算後困惑: 1,000,000,000字節/ 4字節= 2.5億
作者是如何得到3200萬?
書中描述象下面這樣:
筆者也承認,這是這本書的網站錯誤,請參閱http://algs4.cs.princeton.edu/errata/errata-printing3.php
1千兆= 1073741824位
1 INT = 32位
計算=(32分之1073741824)=(32 * 1024 )= (32 * 2 )= 32百萬
如果作者的意思是千兆字節那麼答案將是(32 * 8)萬元= 2.56億
'32 * 2^20 = 33.554.432!= 32000000 = 32 * 10^6 = 32百萬'。請使用正確的術語。 –
在二進制系統中,1k = 1024, 1M = 1024k = 1024 * 1024 = 2^20 所以這裏3200萬或32兆= 32 * 2^20 這裏只有單位不存在,即位 – shaggy007
* M *是一個標準的[ISU](https://en.wikipedia.org/wiki/International_System_of_Units)後綴,意思是'10^6'。 **無論你正在做什麼計算,在任何基地**。很長時間以來,它**對CS具有**特殊含義,並引起歧義(從未購買HDD),但現在問題已經以二進制後綴* Mi *(2^20)解決。永久誤導性使用是非常危險的。所以請使用正確的術語。 –
不,筆者說了一句十億字節 – Max
不要混合位和字節,並且在有符號和無符號整數之間也有區別。 – mkabanen
還要注意區分1GB和1GiB。 –