-3

我在thisByteArray topic中查看了转换为的方法,当我看到这一行时,我感到有些困惑:int

ret[2] = (byte) ((a >> 8) & 0xFF);
if>>运算符的含义与我们使用 int/float 时的运算符相同>..?当它们不相等时,它的含义是什么?

4

2 回答 2

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

还有许多其他运算符存在,这是一种非常强大的方法来做很多事情

于 2013-10-18T13:40:07.273 回答
-1

右移>>运算符将左操作数向右移动,并按其右操作数指定的位数进行符号扩展。这意味着 n 位的值向右移动,导致 n 个高位包含与未移位值相同的值。该运算符从不抛出异常。

while>运算符仅用于比较

于 2013-10-18T13:34:44.500 回答