位运算操作符_
位运算操作符
>> 算数右移动
<< 左移位运算
1 算数右移位操作符 >>
exmp 1
int a1 = 12 >>1;
变量a取值为6
exmp 2
int a2 = 12>>2//-3
舍弃二进制数的最后两位 在二进制数的开头增加两位符号位.
-12是负数故增加两位符号位为11
正12-->负12
0000 1100
取反
1111 0011
加1
1111 0100
-12的二进制形式
1111 0100
1111 1101
负数-->正数
1111 1101
1111 1100 <1>-1
1111 1100 <2>取反
0000 0011
---------------
3 由于负数故为-3
example 3
int a3 = 128 >>2;//取值为32
128 二进制数
0000 0000
1000 0000
右移动两位
0010 0000
32
emp4
int a4 = 129>>2;//取值为32
129 二进制数
1000 0001
右移动两位
0010 0000
------------
32
公式
a>>b 等价于 a/2^(b%32)
a除以2的b摸32次方
12>>1 等价 12/2^1 = 6