【C/C++】關於計算機內存地址的理解

  • 經常可以看到某些書籍上寫的內存地址0x0001,在另外一些書籍上寫的內存地址又變成了0x00000001。都是表示的編號爲1的內存地址,爲什麼一個是4位16進製表示,另外一個又是用8位16進製表示呢
  • 根據不同的硬件環境來的。個人理解:有些CPU只能尋址16位(16根地址線),所以用4位十六進制表示地址就夠用了。有些CPU只能尋址32位(32根地址線),所以用8位十六進制
  1. 計算機中存儲器的容量是以字節爲基本單位的。也就是說一個內存地址代表一個字節(8bit)的存儲空間
  2. 內存地址只是一個編號,代表一個內存空間
  3. 32位的操作系統最多支持4GB的內存空間,也就是說CPU只能尋址2的32次方(4GB),注意這裏的4GB是以Byte爲單位的,不是bit。也就是說有4G=41024M(Byte)=410241024Kb(Byte)=4102410241024Byte(8bit),即2的32次方個8bit單位
    在這裏插入圖片描述
  4. 即一個內存地址表示一個8位的存儲空間
  • 例如下圖所示:左邊4組地址分別爲右邊每組的首地址,每一個內存地址表示8個bits,因此0x43c00000到0x43c00003存儲着0000431B
    在這裏插入圖片描述
  • 歡迎關注微信公衆號【電子物語】,有更多好玩的文章等着你 !
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章