回 帖 发 新 帖 刷新版面

主题:高手求助,关于 位移 的 题目

public class BitMover {

    public static byte swap(byte b){
        int lowBits = b & 0xF;          // 为什么这里取得是最低的4位?
        int highBits = b & 0xF0;        // 为什么这里取得是最高的4位? 
        
        int result = lowBits << 4 | highBits >>> 4;
        
        return (byte)result;
    }
    
    public static void main(String args[]){
        System.out.println(swap((byte)10));
        System.out.println(swap((byte)1));
        System.out.println(swap((byte)-1));
    }
}

**************************************************
int lowBits = b & 0xF; 和 int highBits = b & 0xF0;
不太明白,请高手帮忙解答一下,谢谢^^

回复列表 (共2个回复)

沙发

你想要测试什么?函数swap(byte b)你的目的是什么?

swap(byte b)功能:交换b二进制形式(8位)的前4位和后4位。
1. int lowBits = b & 0xF;          //取最低的4位
   int highBits = b & 0xF0;        //取最高的4位
2. int result = lowBits << 4 | highBits >> 4;
   交换位置,之后打印

我觉得这个题目没什么实际意义,只是想让你了解一下位操作以及变化而已

 

板凳

打印整型的二进制格式
http://www.blogjava.net/majianan/archive/2008/03/24/188166.html
我这里有写好的,你可以看一下

我来回复

您尚未登录,请登录后再回复。点此登录或注册