汇编-负数表示法
负数的二进制表示方法
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