一:
<<指向左边,向左移动
3<<2 :
3转换为二进制是11,向左移动2位是1100,转十进制为12;
计算公式是 3×2^2=12 ; k<<n 等于 k×2^n
二:
>>指向右边,向右移动
8>>2:
8转换为二进制是1000,向右移动2位是10,转十进制为2;
计算公式是 82^2=2; k>>n 等于 k÷2^n
三:
>>> 就是在>> 上结果取绝对值。(24位的二进制最高位补了0,最高位0表示正数,1表示负数)
注意,
int类型位数是32,所有当向左或向右移动大于等于32位时,移动数除以32取余,这余数就是移动数。
本文只是大致计算方式,具体计算涉及原码、补码、反码。可参考Java中的<<、>>、>>>运算符_Archie_java的博客-CSDN博客_java的<<