什么是补码?
- 正数的补码就是其自身,
- 负数的补码是在其原码的基础上,符号位不变,其余各位取反,然后+1。也就是反码+1. 也等于其绝对值的二进制取反+1。
如何解释?
以时钟为例,当前8点,如果想调到5点,你可以减3,也可以加9。
- 时钟的模是 12 12 12
- 3 的补码 = 12 − 3 = 9 3的补码=12-3=9 3的补码=12−3=9
- 5 = 8 − 3 = ( 8 + 9 ) % 12 = 17 % 12 = 5 5=8-3\\ \ \ \ =(8+9)\%12\\ \ \ \ =17\%12 \\ \ \ \ =5 5=8−3 =(8+9)%12 =17%12 =5
以八位数的2为例:
- 八位数的模是 2 8 = 100000000 (二进制一个 1 + 八个 0 ) 2^8=100000000(二进制一个1+八个0) 28=100000000(二进制一个1+八个0)。
- [ 2 的补码 ] = 自身 = 00000010