汇编-负数表示法

天子骄龙 / 2023-08-10 / 原文

负数的二进制表示方法

1、正数5的表示法
假设有一个int类型的数, 值为5, 那么, 我们知道它在计算机中表示为:

00000000 00000000 00000000 00000101

5转换成二制是101, 不过int类型的数占用4字节(32位) , 所以前面填了一堆0。

2、负数-5的表示法

现在想知道,-5在计算机中如何表示?在计算机中,负数以原码的补码形式表达。

原码:

  一个正数,按照绝对值大小转换成的二进制数;一个负数按照绝对值大小转换成的二进制数,然后最高位补1,称为原码。

  比如:

  00000000 00000000 00000000 00000101是5的原码。
  10000000 00000000 00000000 00000101是-5的原码。

反码:

  正数的反码与原码相同,负数的反码是对该数的原码除符号位外各位取反。

  比如:

    正数00000000 00000000 00000000 00000101的反码还是 00000000 00000000 00000000 00000101

    负数10000000 00000000 00000000 00000101的反码则是 11111111 11111111 11111111 11111010

补码:

  正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1.

  比如:10000000 00000000 00000000 00000101的补码是:

            11111111 11111111 11111111 11111011

所以,-5在计算机中表达为:11111111 11111111 11111111 11111011。转换为十六进制:0xFFFFFFFB。

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