跳转到内容

一補數

本页使用了标题或全文手工转换
维基百科,自由的百科全书
「一補數」的各地常用名稱
中国大陸反码、一的补码
臺灣一補數
港澳一補碼
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.