2015年1月26日 星期一

C++ 電腦記憶體位址及其16進制


*位址就是電腦所儲存資料的記憶地址
*16進制,一般用數字0到9和字母A到F表示(其中:A~F10~15
 
位址通常以十六進制顯示 e.g. 0x0065FDF4
0x <- 代表該數將以十六進制顯示
0065FDF4 中每個數字都佔據 4bit ,
因為轉換為二進制時每個數值都需要使用4bit,

例如:6的16進制轉換為2進制便是 0110,
而16進制最大值F的2進制是 1111 。

16進制轉換10進制的過程:
2A1F(16進制) = 163 x 2  +  162 x 10 + 161 x 1 + 160 x 15 = 10,783 (十進制)



































- 從 0x0065FDF4 這個地址上可以推算電腦是運行32bit , 因為4bit x 8 = 32bit.
- 一部32bit電腦最多只可以擁有232 個物理層地址(Total 4GB),
  因為ram是線性,所以每個physical address入面可以存放無限bit的虛擬位址。

- 而每個windows程序也會有自己的虛擬地址

- 值得一提的是,電腦儲存位址的方式是倒轉放,例如:
  當一個物理地址0x0001存放著 1個位元組(byte)的空間 0x34 ,
  那該位址便會是0x3401,而Pointer亦會指向0x3401該位址。





沒有留言:

張貼留言