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

解决方案 »

  1.   

    byte b = 0x01; // 00000001
    你要的是0x01的1,还是00000001的1?int hex = b & 0xF;
    int bin = b & 0x1;
      

  2.   

    我想要的是二进制的1,即00000001,除了这个方法没有别的方法了吗?我要是想直接b>>1,即b右移得到移出的那个位该怎么办呢
      

  3.   

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

  4.   

    我就是想循环右移,得到一个byte的所有位。
      

  5.   

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

  6.   

    +1,如果是int的话,要得到所有byte需要用>>>