2的n次方获取方式
使用左移
1<<2 = 4
1<<3 = 8
<<、>>、>>>的区别
<<
,是该数转为二进制时左移标识,左移后原先的位置以0补充,比如3的二进制是11
,左移2位即3<<2
,转二进制即1100
为12
>>
,是该数转为二进制时右移标识,右移后原先的位置以0补充,比如5的二进制是101
,右移2位即5>>2
,转二进制即001
为1
>>>
,表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0,比如2>>>2
,结果为10
右移0
,结果为0,如果是-2>>>2
,因为是负数所以高位是1,即10000010
,逻辑右移了2位后变成了111111111111111111111111111111
(30个1),10进制为1073741823
,同理-8>>>2
,二进制是100000100
,逻辑右移后变成了111111111111111111111111111110
,10进制为1073741822
-2 >>> 2 = 1073741823
2 >>> 2 = 0
-4 >>> 2 = 1073741823;
4 >> 2 = 1
-8 >>> 2 = 1073741822
-8 >>> 2 = 2