Skip to content
快看这页儿写了啥...

什么是原码、补码和反码?

题干

  • 原码

  • 补码

  • 反码

题解

计算机里保存的是最原始的数字,也就是没有正和负的数字,我们称之为无符号数字。

在计算机中,原码、补码和反码都是用来表示有符号整数的编码方式。

  • 原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。正数的符号位为 0,负数的符号位为 1。例如,8 位二进制数,+1的原码为 0000 0001-1 的原码为 1000 0001

  • 反码是在原码的基础上,对正数不变,对负数除符号位外各位取反。例如,8 位二进制数,+1 的反码为 0000 0001-1 的反码为 1111 1110

  • 补码是在原码的基础上,对正数不变,对负数除符号位外各位取反后再加 1。也就是在反码的基础上加 1。例如,8 位二进制数,+1 的补码为 0000 0001-1 的补码为 1111 1111

计算机使用补码来表示数字,是因为补码可以将减法转化为加法,并且避免了 0 有两种表示方式(+1 & -1)的问题。使用补码还可以多表示一个最小值。例如,8 位二进制数,使用原码或反码表示的范围是 [-127, +127],而使用补码表示的范围是 [-128, +127]

扩展

「硬核JS」数字之美

贡献者

isboyjc's avatar isboyjc

浏览量(PV)  次  ·  独立访客(UV)  人次
不正经的前端 | 八股 · 欢迎 star ⭐