从 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)