課程
/后端開發
/C
/Linux C語言指針與內存
64位機的內存地址為什么有0Xffffffffff位,假如內存這么大,一個內存單元8bit,那內存空間算出來是很大的。實際上內存絕不可能這么大。那這么多編號怎么回事,難道有些編號沒占空間?是哪里想錯了?
2017-01-13
源自:Linux C語言指針與內存 4-3
正在回答
1,0XFF FF FF FF? 應該是8個F??
2,8bit 是代表8個二進制位? 8個二進制 可以用一個字節表示 1 Byte? 64位就是8個字節 8byte?
3,既然是64位? 那么 我們定義指針 一般 也會使用 64來表示一個地址,相對于 64位的系統 一般表示 一次能計算的數據長度是64位,還有寄存器 什么的 也是64位的 這個就是硬件了。那么 如果一個地址用64位來表示 在 實現上 相對來說比較簡單 這個實現 不是說地址線? 一般地址線 應該是50左右吧 或者更少
4,既然使用了64位 來操作 地址 那么 理論上64位 數字能表達的最大范圍確實就是?0XFF FF FF FF
但是實際上確實 沒有 這么大的內存? 。確實很多位 理論上用不到?
不過一般情況下這個地址 是個虛擬地址? 只是映射到具體地址 之前看到的,這個就由操作系統來做映射了
還有就是 這樣 有一個 好處就是 操作系統 可以 使用虛擬技術?
讓你以為 內存 足夠大? 而可以給你的 應用分配 理論上超出實際內存 的空間 來使用
那些 編號 既然不是真實的 所以你使用時候? 也不必關心 他到底 真實值是多少? 交給系統就好了?
64位操作系統理論上能管理的內存地址是這么多,但是實際上我們買內存條,根本買不到這么大的
舉報
指針-C語言的核心,代領大家對c語言有更加深刻的理解
1 回答求大神,哪里錯了?
3 回答求大神,這個怎么錯了?
1 回答大神求解!
4 回答大神們?。。∏蠼?/p>
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2020-11-24
1,0XFF FF FF FF? 應該是8個F??
2,8bit 是代表8個二進制位? 8個二進制 可以用一個字節表示 1 Byte? 64位就是8個字節 8byte?
3,既然是64位? 那么 我們定義指針 一般 也會使用 64來表示一個地址,相對于 64位的系統 一般表示 一次能計算的數據長度是64位,還有寄存器 什么的 也是64位的 這個就是硬件了。那么 如果一個地址用64位來表示 在 實現上 相對來說比較簡單 這個實現 不是說地址線? 一般地址線 應該是50左右吧 或者更少
4,既然使用了64位 來操作 地址 那么 理論上64位 數字能表達的最大范圍確實就是?0XFF FF FF FF
但是實際上確實 沒有 這么大的內存? 。確實很多位 理論上用不到?
不過一般情況下這個地址 是個虛擬地址? 只是映射到具體地址 之前看到的,這個就由操作系統來做映射了
還有就是 這樣 有一個 好處就是 操作系統 可以 使用虛擬技術?
讓你以為 內存 足夠大? 而可以給你的 應用分配 理論上超出實際內存 的空間 來使用
那些 編號 既然不是真實的 所以你使用時候? 也不必關心 他到底 真實值是多少? 交給系統就好了?
2017-01-21
64位操作系統理論上能管理的內存地址是這么多,但是實際上我們買內存條,根本買不到這么大的