計算機存儲單位之間的關係
位 bit (Binary Digits):存放一位二進制數,即 0 或 1,最小的存儲單位。
字節 byte:8個二進制位爲一個字節(B),即1B = 8bit,最常用的單位。
計算機存儲單位一般用B,KB,MB,GB,TB,PB,EB,ZB,YB,BB來表示,它們之間的關係是:
1B (Byte) = 8b(bit )
1KB (Kilobyte ) =2^10B =1024B
1MB (Megabyte ) =2^10KB =1024KB
1GB (Gigabyte ) =2^10MB =1024MB
1TB (Trillionbyte) =2^10GB =1024GB
1PB(Petabyte ) =2^10TB =1024TB
1EB(Exabyte ) =2^10PB =1024PB
1ZB (Zettabyte ) =2^10EB = 1024 EB
1YB (Yottabyte ) = 2^10ZB =1024 ZB
1BB (Brontobyte ) = 2^10YB =1024 YB
也就是說 1GB 等於 2 的 30 次方的Byte
問題
爲什麼32位機器對應的虛擬內存最大隻能到 4G 呢, 這是如何算出來的?
過程推算
假如給你只有三位的地址空間,那麼你能用這個三位的地址空間表示多大空間的內存呢,也就是三位裏面,每位有兩種結果,0或者1 ,總共 8 種結果(2的3次方),也就是說 32 位那麼範圍就是0到32個1 ,總共是 4GB 的內存大小
2^32B=2^(2+10+10+10)B=2^2*(2^10*2^10*2^10)B=4GB ( 由上面就可以知道 1GB = 2的30次方B )
延伸
假如存儲體積來說 , 1個格子只能放0和1 , 分兩部分 ,一部分是地址,一部分是儲存空間
地址:32個格子
儲存空間:4GB個格子
32個格子可以用來給 4GB 存儲體積排編地址編號 , 那麼地址長什麼樣呢 ? 0或者1是二進制, 要寫很長, 不方便 ,我們一般用16進制來表示,
0x100000000 (1後面8個0)
操作系統分配的虛擬地址一般都是以 0x08048000
開始的 ,現在再來看這個地址就非常熟悉了 ,這絕對是 32位系統哇 !! 位數和我們剛纔推算的一樣
參考資料
- (爲什麼32位計算機只能夠使用4G內存)[https://www.cnblogs.com/dolphin0520/archive/2013/05/31/3110555.html]