跳至內容

數位電路/二進位制系統

來自華夏公益教科書,開放的書籍,為開放的世界

二進位制數

[編輯 | 編輯原始碼]
十進位制 二進位制 八進位制

(基數 8)

十六進位制

(基數 16)

00 0000 00 0
01 0001 01 1
02 0010 02 2
03 0011 03 3
04 0100 04 4
05 0101 05 5
06 0110 06 6
07 0111 07 7
08 1000 10 8
09 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F

為了將十進位制數轉換為二進位制數,您必須以 2 的冪而不是 10 的冪來思考。

冪表示 24 23 22 21 20
權重 16 8 4 2 1

1111 = 15 是

冪表示 24 23 22 21 20
權重 16 8 4 2 1
十進位制值“15” 0 1 1 1 1

23 + 22 + 21 + 20 = 8+4+2+1 = 15.

用二進位制表示 31 = 11111 是

24 + 15,如上所述。



請記住,最低有效位(傳統上是最右邊的)數字是 20,等於 1。


進位制轉換

[編輯 | 編輯原始碼]

根據角色

八進位制和十六進位制數

[編輯 | 編輯原始碼]

二進位制是數位電路的固有數字系統,但對於人類來說,長串的 1 和 0 並不容易讀寫。因此,人們開發了易於與二進位制進行轉換的數字系統,包括八進位制和十六進位制。

八進位制數字系統是基數 8,與我們的本機數字系統(十進位制)是基數 10 相比。在基數 8 中,僅使用 0 到 7 的數字。每個八進位制數字可以用三個二進位制位表示,如上轉換表(在二進位制數字下)所示。

八進位制和二進位制之間的轉換很簡單。要從八進位制轉換為二進位制,將每個八進位制數字轉換為其三位等效值,反之亦然。

類似地,十六進位制數字系統(基數 16)便於與二進位制進行轉換。每個十六進位制數字正好表示四個二進位制位,如上表所示。

請注意,在十六進位制中,字母 A 到 F 用於分別表示 10 到 15 的十進位制等效值。

長串的位可以使用八進位制和十六進位制以更緊湊的方式表示。在這兩者中,十六進位制更常用。由於每個十六進位制數字代表四個位,因此十六進位制非常適合表示現代系統中可能出現的數值(16、32 或 64 位)。十六進位制值通常以“0x”表示 - 例如,0xFF 是 255 的十六進位制等效值。

一補碼是透過取給定數字(用二進位制表示),然後“翻轉”每個位來計算的,這樣原始數字中的每個 0 現在在一位補碼中表示為 1,原始數字中的每個 1 在一位補碼中表示為 0。二進位制數與其一補碼的邏輯與全為 0。二進位制數與其一補碼的邏輯或全為 1。

二補碼是透過取二進位制值的位補碼,然後加 1 來形成的。二補碼用於表示有符號整數。一個數字的負數表示為原始數字的二補碼。減法可以透過將值的負數(二補碼)新增到另一個值來執行。N 位可以表示的最小整數是 -2N-1,而最大數字是 2N-1-1。

AB78(十六進位制)= 1010 1011 0111 1000(二進位制)0xAB78 的一位補碼是 0101 0100 1000 0111。0xAB78 的二補碼是 0101 0100 1000 1000。

1F1F(十六進位制)= 0001 1111 0001 1111(二進位制)0x1F1F 的一位補碼是 1110 0000 1110 0000。0x1F1F 的二補碼是 1110 0000 1110 0001。

華夏公益教科書