小编Jav*_*nto的帖子

0xff <<n 在 Java 中有什么作用?

从 Inputstream ,我读取前 4 个字节并将它们打包以获得一些信息,在这种情况下是流的大小/长度。

为此,我使用从另一个项目复制的跟随代码(示例 1)

示例 1:使用字节数组,其中的值从 InputStream 读取到名为in_buf[]且长度为 4 且值为 {0,0,12,26} 的数组中。

示例 1

int size = (((in_buf[0] & 0xff) << 24) | ((in_buf[1] & 0xff) << 16) |
            ((in_buf[2] & 0xff) << 8) | (in_buf[3] & 0xff)); // result its 3098
Run Code Online (Sandbox Code Playgroud)

结果我变成了大小的值,很好,但是..

我需要解释这里发生的事情,我尝试拆分所有功能以更好地了解发生的情况并进行调试,然后我变成了以下结果

    int byte1 = ((in_buf[0] & 0xff) << 24); // result 0
    int byte2 = ((in_buf[1] & 0xff) << 16); // result 0
    int byte3 = ((in_buf[2] & 0xff) << 8); …
Run Code Online (Sandbox Code Playgroud)

java file-io bit-manipulation operators bit

1
推荐指数
1
解决办法
95
查看次数

标签 统计

bit ×1

bit-manipulation ×1

file-io ×1

java ×1

operators ×1