这意味着什么(计算中<<>>>)?

时间:2014-09-02 20:32:36

标签: java android

我在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

1 个答案:

答案 0 :(得分:3)

在这篇文章中,我们假设数字是一个十六进制数字,只是为了简单起见。

">>"是位移算子。例如:

8 >> 1 == 8 / 2 == 4;

二进制中的等价于

b1000 >> 1 == b0100;

添加第三个">"进入操作员将0插入到现在最左边的插槽中,而不是进行符号扩展以确定它的值。

-1 >> 1 = b1111
-1 >>> 1 = b0111

这对于比特掩码更有用,其中将新值强制为0很方便。并且仅适用于右移,没有<<<运营商。