为了账号安全,请及时绑定邮箱和手机立即绑定

什么是 | Java 中的运算符在做什么?

什么是 | Java 中的运算符在做什么?

慕仙森 2023-10-13 10:30:22
我读了一些 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


查看完整回答
反对 回复 2023-10-13
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

使用的运算符有:

  1. “<<(左移)”:二进制左移运算符。左操作数的值向左移动右操作数指定的位数。

    1. “>>(右移)”:二进制右移运算符。左操作数的值向右移动右操作数指定的位数。

    2. “|(按位或)”:二元或运算符复制一个位(如果任一操作数中存在该位)。

在你的代码中:

hexBytes[i*4]   << 24

hexBytes[i*4] 的二进制值左移 24 位。与其他相同,结果是按位或| 操作员。


查看完整回答
反对 回复 2023-10-13
  • 2 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信