while (n != 0) {
System.out.print(n & 1);
n = n >> 1;
}
如果 n = -1,Java 中的上述代码将导致无限循环。
如何让它打印负整数?
最佳答案
>>>
运算符是一个“符号扩展”右移运算符,这意味着如果设置了原始值的最高位,则“移入”的位为 1 . 这基本上使结果的符号保持不变。
您需要 >>>
运算符(无符号右移 运算符),它总是“移入”0 位,即使最高位是 1。
参见 JLS section 15.19或 Java tutorial了解更多详情。
关于java - 如何打印负整数的所有设置位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28419344/