一的补码

二进制数每个数字反转,得到的数即为原二进制的一的补码(英语:ones' complement)。若某一位为0,则使其变为1,反之亦然。[1]

  • 一的补码以有符号比特的二进制数定义。
  • 一的补码是有符号比特的二进制数。
  • 正数和0的一的补码就是该数字本身。
“一的补码”的各地常用别名
中国大陆反码、一的补码
台湾一补数
港澳一补码

一的补码在很多算术运算中的表现与这个数的相反数很相似,此特性可使加法电路同时可以运算减法。然而,由于一的补码中存在多余的负零和其它问题,此方式并未像补码一样被广泛应用。

表示方式

例如,+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.