位运算
1、计算机中数字的二进制
在计算机中,二进制正数和负数的表示方法不同。正数直接以其二进制形式表示,而负数则通过补码的形式表示。
具体转换步骤
- 原码:正数的原码与反码、补码相同,负数的原码是其绝对值的二进制表示,但最高位为1。例如,-5的原码为10000000 00000000 00000000 00000101。
- 反码:负数的反码是其原码除符号位外各位取反。例如,-5的反码为11111111 11111111 11111111 11111010。
- 补码:负数的补码是其反码加一。例如,-5的补码为11111111 11111111 11111111 11111011。
为什么负数在计算机取补码?
通过补码表示,计算机可以只使用加法电路来处理减法运算。
减法的本质是加上负数的补码,因此加法和减法操作可以用同一种逻辑实现,这简化了计算机的硬件设计,并提高了处理运算的效率。
例如:5的计算机表示(原码):00000101-3的计算机表示(补码): 11111101(原码:1000011,反码:1111100,+1=补码:11111101)
5-3=5+(-3)=
0000 0101
+
1111 1101
=
10000 0010 (注意此处的溢出位),正好是:0000 0010 =2
2、位运算
5的计算机二进制: 0000 0101
-3的计算机二进制:1111 1101