所以今天我在CS班,我們正在討論二進制。例如數字26 110010.我的教授說,計算機以8位的字節存儲數據,所以26實際上是000110010.這不是一個巨大的內存浪費?我的意思是它只有三位,但我假設它是否對8位以下的所有東西都進行了這樣的處理。如果一個數字需要像110010101(405)這樣的9位,會發生什麼情況。然後會發生什麼?二進制和內存?
Q
二進制和內存?
0
A
回答
0
這將浪費更多的內存來跟蹤每個值的開始和結束,以便您可以準確地說明在任意內存分配方案中使用哪些位。
如果您使用的是8位類型,則不能存儲多於11111111
(256無符號)。爲了更大,你必須開始使用16位類型,並將405代表爲0000000110010101
。
0
實際上整數通常以4個字節存儲,所以405將是00000000 00000000 00000001 10010101
。事情是CPU一次很好地加載數據字節,不一定是位。這完全是關於CPU上的指令。另外,當你知道每個字節佔用多少字節時,在內存中查找數字會更容易。如果你想要第5個元素,你可以跳過4 * 4個字節,然後直接跳到第5個元素,而不是掃描所有的位,看看每個數字有多長。
相關問題
- 1. 保存二進制數組內
- 2. 二進制內容
- 3. Pymongo BSON二進制保存和檢索?
- 4. 二進制文件fread/fwrite和calloc/free內存泄漏?
- 5. 讀取,修改和輸出內存中的二進制流
- 6. 轉換二進制和十六進制沒有內置函數
- 7. Base64 XML二進制內容
- 8. 十進制到二進制(二進制)
- 9. 二進制搜索樹內的二進制搜索樹
- 10. 二進制到十進制和十進制到二進制轉換器
- 11. 如何將數字(十進制)轉換爲二進制(二進制)數字和從二進制到十進制?
- 12. 十進制和二進制數處理
- 13. PHP十六進制和二進制
- 14. MySQL內存表是否存在二進制安全列類型?
- 15. C socket只能用二進制數據製作內存泄露
- 16. 如何將二進制文件(0和1)存儲/加載到內存中?
- 17. 複製二進制文件的內容
- 18. Cassandra和二進制文件
- 19. 二進制數據和GWT
- 20. ODataController和二進制數據
- 21. DbUnit和二進制數據
- 22. PCLStorage和二進制數據
- 23. Git和二進制數據
- 24. gitattributes和二進制選項
- 25. WCF和二進制數據
- 26. ARM二進制和hexedit
- 27. StreamReader和二進制數據
- 28. NetTCP和二進制傳輸
- 29. std :: ios ::二進制或std :: ifstream ::二進制和類似的?
- 30. 區分二進制頭和編碼二進制在霍夫曼
大多數現代機器都是字節可尋址的,一個字節需要8位。如果你想要在一個字節中打包多個數據項,那麼你不能少地址,那麼你需要一些技巧,比如C位字段。如果數據不適合一個字節,那麼您將需要兩個字節,在許多語言中是* short *。等等。你可以爲60美元購買640億比特幣,所以不完全是你擔心的事情。 – 2014-08-27 17:23:06