问题描述
解决方案
1的二进制码是00000000000000000000000000000000001
-1是1的补码+1,补码是11111111111111111111111111111111110,加1就是11111111111111111111111111111111111
解决方案二:
因为这样最简单。
-1 + 1 = ?
显然是0吧。
那么用相同的运算规则,直接在11111...111上+1,是不是100000...000,最高位直接丢掉,就是0了?
也许初学者会想,为什么符号位放在最高,并且负的为1,正的为0,为什么负数是用补码表示。就是硬件设计简单。
假如-1被设计成 100000...001,那么我们没法直接对负数做算术运算,必须首先判断符号,加大了计算的难度。
时间: 2024-08-07 13:37:45