Java 二元合取

Java binary conjunction

正在阅读 Java 中的二元运算我是下一个例子的堆栈:

10111011 & 00001000 = 00001000

00001000 是 decimal represenation

中的 8

但是当我尝试执行以下代码时:

    System.out.println("10111011 & 00001000 = " + (0b10111011 & 0b00001000));
    System.out.println("10111011 & 00001000 = " + Integer.toString(0b10111011 & 0b00001000, 2));

我得到输出:

10111011 & 00001000 = 8 // right!
10111011 & 00001000 = 1000 // not a 00001000!

所以我有 2 个问题:

1) 为什么我做合取运算的结果是无效的?(我的错误)

2) 为什么在输出中我只有部分可见的位?我怎样才能看到所有的位数?为什么 Integer.toString(value,radix) 没有 return 完整记录为 00001000?

可以删除。问题解决了。我的错误

1) 结果是正确的,二进制为00001000 = 十进制为8。你为什么期待4?连你的问题都提到了正确答案。

2) int 的 toString 方法不会将填充值置零。