举例如下,如果一个变量
int
x=5
则x的2进制表示为:
0000000000000101
执行x>>1代表x右移一位,就是上面这一串整体右移,末位淘汰,高位补0
于是x变成了
0000000000000010
也就是x变成了2
<<左移相反,高位淘汰,末位补0
你的那种x[i][j]+=>4是不行的,没有这种运算符。
C语言中,“<<”为左移运算符,“>>”为右移运算符。
具体使用方法如下:
1、左移运算符(<<)
将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。
例:a = a <<2 将a的二进制位左移2位,右补0,
左移1位后a = a * 2
若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。
2、右移运算符(>>)
将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。
操作数每右移一位,相当于该数除以2。
例如:a = a >>2 将a的二进制位右移2位。
左补0 or 补1 得看被移数是正还是负。