由計算機的硬體決定,任何儲存於計算機中的資料,其本質都是以二進位製碼儲存,乙個二進位制稱為1個bit,而8個bit組成乙個位元組,位元組通常是資料儲存的基本單位。
計算機中的儲存通常以位元組為單位,乙個位元組數8位,即1b(byte)=8b(bit),乙個英文是乙個位元組,而乙個漢字是兩個位元組。
假設有4個位元位:
表示無符號正數,就是0 ~ 15
表示有符號整數,那麼其中一半給到+1 ~ +7,另一半給到-1 ~ -7
既然0010表示+2,那麼如果最左邊的bit位替換成1就表示對應的負數,即1010表示-2
0000
00100
41000
-01100
-40001
10101
51001
-11101
-50010
20110
61010
-21110
-60011
30111
71011
-31111
-7這就是原碼,但是此時會導致出現0和-0,這兩個值在數學意義上的意思相同,二進位制編碼卻不同
並且此時2+(-2)=0010+1010=1100=-4,是時候採用新的編碼方法了
既然0010表示+2,那就將所有進製反轉表示負數不就行了,即1101表示-2
0000
00100
41111
-01011
-40001
10101
51110
-11010
-50010
20110
61101
-21001
-60011
30111
71100
-31000
-7這就是反碼,此方法也會導致0和-0的二進位制值不相同
此時2+(-2)=0010+1101=1111=-0,也勉強可用,但有沒有更好的方法?
在負數反碼的基礎上如-2(1101)加上(0001)得到(1110)
此時2+(-2)=0010+1110=10000此時我們可以放心的忽略掉該進製即變成0000=0
補碼表為:
0000
00100
41000
-81100
-40001
10101
51111
-11011
-50010
20110
61110
-21010
-60011
30111
71101
-31001
-7
原碼 反碼 補碼
正數 原碼 反碼 補碼一樣 7 原 0 0000111 b 7 反 0 0000111 b 7 補 0 0000111 b 負數 原碼就是原來的表示方法 反碼是除符號位 最高位 外取反 補碼 反碼 1 7 原 1 0000111 b 7 反 1 1111000 b 7 補 1 1111001 b 當...
原碼 反碼 補碼
正數 原碼 反碼 補碼一樣 7 原 0 0000111 b 7 反 0 0000111 b 7 補 0 0000111 b 負數 原碼就是原來的表示方法 反碼是除符號位 最高位 外取反 補碼 反碼 1 7 原 1 0000111 b 7 反 1 1111000 b 7 補 1 1111001 b 當...
原碼 反碼 補碼
數值在計算機中表示形式為機器數 計算機只能識別0和1,使用的是二進位制,而在日常生活中人們使用的 是十進位制,正如亞里斯多德早就指出的那樣,今天十進位制的廣泛採用,只不過我們絕大多數人生來具有10個手 指頭這個解剖學事實的結果.儘管在歷史上手指計數 5,10進製 的實踐要比二或三進製計數出現的晚.摘...