什么是 |运算符在 Java 中做什么?
What is the | operator doing in Java?
我阅读了一些 Java 代码并遇到了 | 运算符。
任何人都可以在这种情况下操作员在做什么吗?
for (int i=0; i<8; i++) {
x[i] = hexBytes[i*4] << 24
| hexBytes[i*4+1] << 16
| hexBytes[i*4+2] << 8
| hexBytes[i*4+3];
}
就是按位或。有关详细信息,请参阅本文:https://www.baeldung.com/java-bitwise-operators
3.1 指的是这个特定的运算符。它还解释了左移 <<
运算符
按位OR
(和AND
)可用于位处理。 AND
允许您提取一组位:int lowest8bits = 0xFFFFF & 0xFF;
.
使用 OR
可以插入位。在上面的代码中,通过将它们移动到正确的位置并 OR
将它们插入到相同的 int
中。
10010010 byte
10010010 00000000 << 8
00000000 00000000 00000000 00010110 The int we're building
00000000 00000000 10010010 00010110 End result in int after OR
使用的运算符是:
- "<< (left shift)" :二进制左移运算符。左边的操作数
值向左移动由右边指定的位数
操作数。
- ">> (right shift)" :二进制右移运算符。左操作数的值向右移动由
右操作数。
- "|(按位或)":二进制或运算符复制一个位,如果它存在于任一操作数中。
在您的代码中:
hexBytes[i*4] << 24
hexBytes[i*4] 的二进制值左移 24 位。与其他人相同,结果是或按位 |运算符。
我阅读了一些 Java 代码并遇到了 | 运算符。 任何人都可以在这种情况下操作员在做什么吗?
for (int i=0; i<8; i++) {
x[i] = hexBytes[i*4] << 24
| hexBytes[i*4+1] << 16
| hexBytes[i*4+2] << 8
| hexBytes[i*4+3];
}
就是按位或。有关详细信息,请参阅本文:https://www.baeldung.com/java-bitwise-operators
3.1 指的是这个特定的运算符。它还解释了左移 <<
运算符
按位OR
(和AND
)可用于位处理。 AND
允许您提取一组位:int lowest8bits = 0xFFFFF & 0xFF;
.
使用 OR
可以插入位。在上面的代码中,通过将它们移动到正确的位置并 OR
将它们插入到相同的 int
中。
10010010 byte
10010010 00000000 << 8
00000000 00000000 00000000 00010110 The int we're building
00000000 00000000 10010010 00010110 End result in int after OR
使用的运算符是:
- "<< (left shift)" :二进制左移运算符。左边的操作数
值向左移动由右边指定的位数
操作数。
- ">> (right shift)" :二进制右移运算符。左操作数的值向右移动由 右操作数。
- "|(按位或)":二进制或运算符复制一个位,如果它存在于任一操作数中。
在您的代码中:
hexBytes[i*4] << 24
hexBytes[i*4] 的二进制值左移 24 位。与其他人相同,结果是或按位 |运算符。