如何以二进制形式显示按位运算的结果?

时间:2013-01-04 16:50:11

标签: java bit-manipulation bitwise-operators

  

可能重复:
  Converting decimal to binary in Java

我发现此代码将数字x,数组p和另一个数字pmax作为输入,表示数组的大小p

public static int permute(int x, int p[], int pmax) {
    int y = 0;

    for (int i = 0; i < p.length; ++i) {
        y <<= 1;
        y |= (x >> (pmax - p[i])) & 1;
    }

    return y;
}

此代码应该排列存储在数字x中的第一个字节的位 根据数组p

中定义的规则

例如,如果x的第一个pmax位是101,并且数组p如下: p={2 1 3} 那么这个函数的结果(y)将等于011

问题

我从未使用过按位运算符,我希望看到上述代码的所有中间结果。例如y<<=1做什么以及使用它的原因。要做到这一点,我需要在二进制形式中稍微显示y变量,否则我只是得到一些随机小数,这对我没有任何帮助。

那么如何在每次按位操作后以二进制格式显示结果?

如果这不是一个很好的方法来准确了解这段代码的作用,你会建议采用什么方法?

2 个答案:

答案 0 :(得分:5)

Integer.toBinaryString(int x)会为你做这件事。

答案 1 :(得分:3)

你正在寻找Integer.toBinaryString(int i)吗?