跳至內容

一補碼

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
「一補碼」的各地常用名稱
中國大陸反碼、一的補碼
臺灣一補數
港澳一補碼
8位元數值的原碼與一補碼進行計算
轉換為十進制所得真值比較
原碼 將符號位作為有
實際含義的位所得值
用一補碼表示
所得值
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)是一種在電腦中用機械碼表示有符號數的方式之一,其中正數使用原碼,負數使用一補碼。該表示法常簡稱一補碼

  • 一補碼以有符號位元的二進位數定義。[需要解釋]
  • 一補碼是有符號位元的二進位數。[需要解釋]
  • 正數和0的一補碼就是該數字本身。

一補碼在很多算術運算中的表現與這個數的相反數很相似,此特性可使加法電路同時可以運算減法。然而,由於一補碼中存在多餘的負零和其它問題,此方式並未像二補碼一樣被廣泛應用。

表示方式

使用一補碼表示有符號數的方法如下

式中,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

相關條目

參考資料

  1. ^ M Morris Mano; Michael D Ciletti. Digital design : with an introduction to the verilog hdl. 培生教育. 2013: 第27頁. ISBN 9780273764526.