日期:2014-05-20  浏览次数:20715 次

位运算
我在其他论坛看到一个帖子:
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位