1. 程式人生 > >內存0.1---內存裏數據的表示形式以及進制轉換

內存0.1---內存裏數據的表示形式以及進制轉換

狀態 單位 最大 -- 示例 1=1 所有 位操作 操作

操作系統的位數與內存的關系: 

32位操作系統是指系統的尋址空間是2的32次方,即4G,也就是說32位操作系統只支持最大4G的內存,64位操作系統尋址空間理論上為2的64次方,即17179869184G,目前最大支持128G,主流主板最大容量為16G。

內存的概念:

內存存儲的是二進制數,可以將內存抽象為開關。一個開關對應兩應兩種狀態,一種狀態對應1,一種狀態對應0。把八個開關放到一間房子裏面,這間房子就相當於一個字節。房間的門牌號相當於地址。無數個房間堆疊且,形成了摩天大廈,大廈就相當於內存。

10這個十進制數字占用4個房間,有32個開關。

存儲單位的轉換:

8bit=1Byte

1024Byte=1KByte

1024KByte=1MByte

1024MByte=1GByte

1024GByte=1TByte

進制的轉換:

二級制: 1+1=10 (逢二進一)

八進制:1+7=10 (逢八進一) 溝通二進制與16進制

十進制:9+1=10 (逢十進一)

十六進制:F+1=10 (逢16進一) 內存地址用16進制表示

十進制-》二進制 : 倒除法,余數逆序

示例:10(十進制)-》1010(二進制)

2| 10

2 | 5 余數為0

2| 2

余數為1

2| 1 余數為0

| 0 余數為1

二進制-》十進制

當前的數字乘以2的位數次方,最後相加

例如:1010(二進制)

0*2^0+1*2^1+0*2^2+1*2^3=10(十進制)

八進制-》二進制

【一轉三位】八進制的一位轉換為二進制讀的3位,轉換時用十進制轉換

456(八進制)-》100 101 110 (二進制)

二進制-》八進制

【三位一取】三個二進制數相當於一位八進制,從低位開始取,高位不夠加0

101 110(二進制)-》56(八進制)

十六機制-》二級制

【一轉四位】十六機制的以為相當於二進制的四位,轉換時用十進制轉換

FED->1111 1110 1101(二進制)

二進制-》十六進制:

【四位一取】四位二進制相當於一位十六進制,從低位開始取,高位不足補0

1010 1111 1101(二進制)-》AFD(十六進制)

內存裏數據的表示形式及原因:

計算機存儲數據的流程:先開辟內存空間,再存儲數據。即算機以字節為單位開辟空間。

1010這個數占4個字節,前面填充28個0,內存存放的形式是:0000000000000000000000000001010

存放的最高位表示符號:0表示正數 1表示負數

+1:00000000000000000000000000000001

-1:10000000000000000000000000000001

10000000000000000000000000000010

若-1由 10000000000000000000000000000001表示

那-1+1=-2,明顯不對,因此-1不能由10000000000000000000000000000001表示

引出原碼,反碼,補碼的概念

原碼:規定了字節數,寫明了符號位,得到了數據的原碼

反碼:正數的反碼是其自己,負數的反碼是其原碼的符號位不變,其他位取反

補碼:正數的補碼是其自己,負數的補碼是其反碼加1

計算機中的所有數都是以補碼的形式存儲的

-1的原碼:10000000000000000000000000000001

-1的反碼:1111111111111111111111111111111110

-1的補碼:1111111111111111111111111111111111

+1的原碼=反碼=補碼=00000000000000000000000000000001

因此+1+(-1)就是:

+1:00000000000000000000000000000001

-1:11111111111111111111111111111111111

00000000000000000000000000000000

結果很顯然就是0,因此用補碼的形式表示所有數字是可行的

內存0.1---內存裏數據的表示形式以及進制轉換