我在Java类中找到了这个整数变量声明:
int i7 =((0x1F& arrayOfByte [i] [4])<< 9)+((0xFF& arrayOfByte [i] [5])<< 1)+( 0x1&(0xFF& arrayOfByte [i] [6])>>> 7);
但是箭头(>>>和<<)是/做什么?
亲切的问候, 跋
更新 播种他们是bithift操作员,谢谢! 找到了这个很好的解释视频:https://www.youtube.com/watch?v=1qa0zvcdHXI
答案 0 :(得分:3)
在这篇文章中,我们假设数字是一个十六进制数字,只是为了简单起见。
">>"是位移算子。例如:
8 >> 1 == 8 / 2 == 4;
二进制中的等价于
b1000 >> 1 == b0100;
添加第三个">"进入操作员将0插入到现在最左边的插槽中,而不是进行符号扩展以确定它的值。
-1 >> 1 = b1111
-1 >>> 1 = b0111
这对于比特掩码更有用,其中将新值强制为0很方便。并且仅适用于右移,没有<<<运营商。