我在其他论坛看到一个帖子:
len = (is.read() & 0xFF) < < 24;
len |= (is.read() & 0xFF) < < 16;
len |= (is.read() & 0xFF) < < 8;
len |= (is.read() & 0xFF);
buffer = new byte[len];
is.read(buffer, 0, buffer.length);
首先解释第一行:读取第一个int(32位),取出它的低16位,左移24位,
-----------------
我不明白的是:&0xFF,怎么是取低16位?0xFF不是二进制的11111111,十进制的255吗,顶多取低八位吧,大学时数理逻辑没学好啊,请高手解释啊
------解决方案--------------------------------------------------------
笔误
应该是低8位
------解决方案--------------------------------------------------------
这个应该是他写错了吧,是低8位