负数的二进制

来自Wikioe
跳到导航 跳到搜索


负数的二进制

在计算机中,负数以其正值的补码形式表达

补码

什么叫补码呢?这得从原码,反码说起。

  1. 原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。
    比如:00000000 00000000 00000000 00000101 是 5 的原码。
  2. 反码:将原码按位取反。
    比如:11111111 11111111 11111111 11111010 是 5 的反码。
  3. 补码:将反码加 1 。
    比如:11111111 11111111 11111111 11111011 即 5 的补码。
    转换为十六进制:0xFFFFFFFB。


示例,-1 的二进制:

  1. 先取1的原码: 00000000 00000000 00000000 00000001
  2. 得反码:     11111111 11111111 11111111 11111110
  3. 得补码:     11111111 11111111 11111111 11111111

可见,-1在计算机里用二进制表达就是全1。16进制为:0xFFFFFF。