补码和位运算

1.为什么使用补码

补码和位运算

为什么使用补码

使用补码的好处:

1)没有歧义的去表示0,因为使用源码表示0会有歧义,如下图,0既不是正数,也不是负数,所以符号位是使用0还是使用1不确定,而使用补码表示时将0看成正数或者看成负数,结果都一样

2)使用补码的第二个好处就是方便二进制的计算。-6+5使用补码表示的话,只需要简单将两者相加就行了。(注意这过程中符号位参与运算)

补码和位运算

2.位运算

常见的位运算是左、右移运算符,

左移运算符m<<n表示将m左移动n位,左移时左边的数将被丢弃,同时在右边直接补上n个0。

举例:00001010<<2 = 00101000

右移运算符m>>n表示将m右移动n位,右移动的时候要先判断数的正负——正数右移补0,负数右移补1 

举例:正数:00001010>>2 = 00000010

          负数:10001010>>2 = 11100010