我在thisByteArray
topic中查看了转换为的方法,当我看到这一行时,我感到有些困惑:int
ret[2] = (byte) ((a >> 8) & 0xFF);
if>>
运算符的含义与我们使用 int/float 时的运算符相同>
..?当它们不相等时,它的含义是什么?
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
还有许多其他运算符存在,这是一种非常强大的方法来做很多事情
右移>>
运算符将左操作数向右移动,并按其右操作数指定的位数进行符号扩展。这意味着 n 位的值向右移动,导致 n 个高位包含与未移位值相同的值。该运算符从不抛出异常。
while>
运算符仅用于比较