一補碼
此條目需要精通或熟悉計算機科學的編者參與及協助編輯。 (2022年2月5日) |
「一補碼」的各地常用名稱 | |
---|---|
中國大陸 | 反碼、一的補碼 |
臺灣 | 一補數 |
港澳 | 一補碼 |
原碼 | 將符號位作為有 實際含義的位所得值 |
用一補碼表示 所得值 |
---|---|---|
0111 1111 | 127 | 127 |
0111 1110 | 126 | 126 |
0000 0010 | 2 | 2 |
0000 0001 | 1 | 1 |
0000 0000 | 0 | 0 |
1111 1111 | 255 | −0 |
1111 1110 | 254 | −1 |
1111 1101 | 253 | −2 |
1000 0001 | 129 | −126 |
1000 0000 | 128 | −127 |
二進制數的一補碼(英語:1's complement)是指將二進制數每個數字反轉得到的數:若某一位為0,則使其變為1,反之亦然。[1]
一補碼表示法(英語:1's complement system)是一種在電腦中用機械碼表示有符號數的方式之一,其中正數使用原碼,負數使用一補碼。該表示法常簡稱一補碼。
一補碼在很多算術運算中的表現與這個數的相反數很相似,此特性可使加法電路同時可以運算減法。然而,由於一補碼中存在多餘的負零和其它問題,此方式並未像二補碼一樣被廣泛應用。
表示方式
使用一補碼表示有符號數的方法如下
式中,N為真值,n為編碼的位數。
顯然,正數的一補碼等於其原碼,而負數的一補碼則可以通過保留其符號位,將原碼的數值位取反得到。
例如,使用4個位元時,+3是0011,用一補碼表示-3便是1100。下表列出了4-bit二進數所能表示的整數。
二進位數 | 無符號位元 | 有符號位元 | 為一補碼時 | 為二補碼時 |
---|---|---|---|---|
0000 | 0 | 0 | 0 | 0 |
0001 | 1 | 1 | 1 | 1 |
0010 | 2 | 2 | 2 | 2 |
0011 | 3 | 3 | 3 | 3 |
0100 | 4 | 4 | 4 | 4 |
0101 | 5 | 5 | 5 | 5 |
0110 | 6 | 6 | 6 | 6 |
0111 | 7 | 7 | 7 | 7 |
1000 | 8 | -0 | -7 | -8 |
1001 | 9 | -1 | -6 | -7 |
1010 | 10 | -2 | -5 | -6 |
1011 | 11 | -3 | -4 | -5 |
1100 | 12 | -4 | -3 | -4 |
1101 | 13 | -5 | -2 | -3 |
1110 | 14 | -6 | -1 | -2 |
1111 | 15 | -7 | -0 | -1 |
相關條目
參考資料
- ^ M Morris Mano; Michael D Ciletti. Digital design : with an introduction to the verilog hdl. 培生教育. 2013: 第27頁. ISBN 9780273764526.