数学计算贷款理财房产置业汽车出行税务薪资商业财税健康健身日期时间单位换算生活实用教育学业科学工程工程建筑母婴女性
首页 / 名词解释 / 补码

补码 二进制补码、Two's Complement

计算机里表示负数的方式,把绝对值取反加 1 得到。

补码是计算机表示带符号整数、尤其是负数的一种编码方式。正数的补码就是它本身的二进制,负数的补码则要在绝对值的二进制基础上逐位取反、再加 1。最高位是符号位,0 表示正、1 表示负。

为什么要用补码而不是简单地拿一位当正负号?因为用了补码,加法和减法可以用同一套加法电路完成,减去一个数等于加上它的补码,硬件不必单独设计减法器,也不会出现「正零」和「负零」两种零的尴尬。这套设计让计算机的整数运算又简单又统一。

举个例子,在 8 位里表示 -5:先写 5 的二进制 00000101,逐位取反得到 11111010,再加 1 得到 11111011,这就是 -5 的补码。反过来,看到一个最高位是 1 的数,把它取反加 1 就能读出对应的正数绝对值。

常见误区:一是脱离位宽看补码,同一串位在 8 位和 32 位下代表的数可能天差地别,必须先说清位数;二是把补码和「取反」混为一谈,取反只是中间一步,补码还要再加 1。这也是为什么对一个正数取反会得到负数——取反加 1 才是相反数,只取反的结果等于负数再减 1。

关于补码的常见问答

补码怎么算出来?正数就是它本身的二进制。负数先写出绝对值的二进制,逐位取反,再加 1。比如 8 位下 -5,就是 00000101 取反成 11111010,加 1 得 11111011。

为什么计算机要用补码?用了补码,减法可以当成加法来算,减一个数等于加它的补码,硬件只需一套加法电路,还避免了正零负零两个零的问题。

看到二进制怎么知道是不是负数?看最高位(符号位),在补码下 0 是正、1 是负。但前提要先说清是几位整数,否则同一串位含义会变。

用到「补码」的计算器

相关名词

← 返回名词解释大全