1:>> 运算符意义(右移)和( ">>>"右移运算符为Java特有,一样的效果)
举几个简单的列子大家就明白了
例一:16 >> 2 结果为 4 ,含义:16 / ( 2² ) = 4
例二:18 >> 3 结果为 2 ,含义:18 / ( 2³ ) = 2 (可以看成是强制取整的结果)
例二:64 >> 3 结果为 8 ,含义:64 / ( 2³ ) = 8
原理:
2:<< 运算符含义(左移)
举几个简单的列子大家就明白了
例一:16 << 2 结果为 64
例二:18 << 3 结果为 18 * 2³
原理:和1中类似这里就不再啰嗦讲解了。。。。。
3:原理讲解 :
请看例图如下:
十进制转换成二进制数据: 这个图表示取52的二进制数据,我记得当初老师管这个方法叫:”除2倒取余“
52是一个十进制数据,依次除以2然后得到余数。最后再根据余数倒回得到: 110100,因此十进制52的二进制数为:110100。
二进制转换成十进制数据:52的二进制数据还原成十进制公式: 从最低位(也就是最右边开始)
0 * (2的0次方) + 0*(2的1次方) + 1*(2的2次方)+ 0*(2的3次方)+ 1*(2的4次方) + 1*(2的5次方)= 52
(o(∩_∩)o 哈哈)不会的童鞋多多的练习几遍然后就会了......
问题: 52 >> 3原理是怎么的呢 ?
答案:表示52的二进制数据右移三位(说的粗暴一点,就是直接将52的二进制数据"110100"后3位砍掉,变成”110“的十进制数据),
最后再将二进制110数据转换成十进制数据最终结果就是 6 = 52 / (2³)
写得非常浅显易懂,希望童鞋们更上一层楼......