2013-10-18 50 views
-3

我看着它转换ByteArrayintthis话题的方法,我觉得有点困惑,当我看着这条线:<<什么意思?

ret[2] = (byte) ((a >> 8) & 0xFF);
如果>>运营商意味着此相同,当我们一起工作>运营商INT /浮动..?当它们不相等时,它的意义是什么?

+2

搜索'java运营商'。 –

+0

这意味着,不是一个好问题,并阅读[java运营商](http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html)文档。 –

+0

是的,我得到它http://www.tutorialspoint.com/java/java_basic_operators.htm我不知道我是否应该删除这个主题 – MyWay

回答

3
8 >> 2 = 2 
8 >> 3 = 1 

在二进制

00001000 >> 2 = 00000010 
00001000 >> 3 = 00000001 

而且

1 << 2 = 4 
1 << 3 = 8 

在二进制:

00000001 << 2 = 00000100 
00000001 << 3 = 00001000 

使用〜否定:

byte b = ~01001000 

然后 b为10110111

的&操作有点交集

10010101 & 01010011 = 00010001 

和许多其他运营商的存在,这是一个非常强大的方式做很多事

-1

右移>>操作符将左操作数向右侧移动,其符号扩展的右侧操作数指定的位数。这意味着n位置的值被移到右边,导致包含与未移位值相同值的n个高位。这个操作符永远不会抛出异常。

>虽然操作者简单地用于比较