原码反码补码
- 补码(twos complement) 在计算机系统中,数值一律用补码来表示(存储)。 主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补 码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
- 正数的原码补码反码相同
- 负数的反码是对其原码逐位取反(符号位除外)
- 负数的补码是对其原码逐位取反(符号位除外),然后整个数加1
XOR - 异或
异或: 相同为 0,不同为 1。也可用“不进位加法”来理解。 异或操作的一些特点:
- x ^ 0 =x
- x ^ 1s = ~x // 注意 1s = ~0
- x ^ (~x) = 1s (1s