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

左移运算符得到移除位
byte b = 0x01;
int re = b>>1;
但是得到的是0而不是1,我想得到移除的那个位该怎么办呢

------解决方案--------------------
byte b = 0x01; // 00000001
你要的是0x01的1,还是00000001的1?

int hex = b & 0xF;
int bin = b & 0x1;

------解决方案--------------------
Java code
byte b = 0x01;
int re = b & 0x01; //这样就得到最低1位了
如果要循环不断取最低位
for (int i=0; i<8; i++) {
    int re = (b>>i) & 0x01;
}

------解决方案--------------------
探讨
我就是想循环右移,得到一个byte的所有位。

------解决方案--------------------
探讨
引用:
我就是想循环右移,得到一个byte的所有位。

那就用for循环
Java code
byte b = 0x01;
for (int i=0; i<8; i++) {
int re = (b>>i) &amp; 0x01;
System.out.println(re);
}