
面试高老师为您分享以下优质知识
在计算机中,负数通常采用 二进制补码表示。以下是具体说明:
最高位(最左边的位)用于表示符号,0表示正数,1表示负数。例如,二进制数 `11111111` 中,最高位为1,表示这是一个负数。
补码表示法
- 原码:
直接将数值按位取反(符号位不变),例如-5的原码为 `101`(5的二进制)。 - 反码:原码除符号位外,其余位取反,例如-5的反码为 `110`。 - 补码:反码加1,例如-5的补码为 `111`(即 `110 + 1 = 111`)。 补码法解决了原码和反码表示负数时的加减法矛盾,是计算机内部统一处理负数的标准方式。
- 8位二进制:
- 无符号数 `11111111` 表示 `255`(0x7F)。 - 有符号数 `11111111` 表示 `-127`(补码计算为 `10000001`)。 - 32位整数:
例如,-1的32位补码为 `11111111 11111111 11111111 11111111`,-127为 `10000000 00000000 00000000 00000111`。
在编程中,通常只需关注符号位,无需手动计算补码。例如,C/C++等语言默认使用补码表示有符号整数。
总结:
二进制负数通过符号位+补码表示,符号位为1,其余位为数值的补码形式。这种表示法简化了计算机中的算术运算和存储。