我讀了一些 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];
}
2 回答

呼啦一陣風
TA貢獻1802條經驗 獲得超6個贊
按位OR(和AND)可用于位處理。AND允許您提取一組位:int lowest8bits = 0xFFFFF & 0xFF;.
您可以使用OR它插入位。int在上面的代碼中,通過將 4 個字節移動到正確的位置并OR對其進行 ing,將它們插入到相同的內容中。
10010010 byte
10010010 00000000 << 8
00000000 00000000 00000000 00010110 The int we're building
00000000 00000000 10010010 00010110 End result in int after OR

白豬掌柜的
TA貢獻1893條經驗 獲得超10個贊
使用的運算符有:
“<<(左移)”:二進制左移運算符。左操作數的值向左移動右操作數指定的位數。
“>>(右移)”:二進制右移運算符。左操作數的值向右移動右操作數指定的位數。
“|(按位或)”:二元或運算符復制一個位(如果任一操作數中存在該位)。
在你的代碼中:
hexBytes[i*4] << 24
hexBytes[i*4] 的二進制值左移 24 位。與其他相同,結果是按位或| 操作員。
添加回答
舉報
0/150
提交
取消