Java 如何打印负整数的所有设置位

Java 如何打印负整数的所有设置位,java,bit,Java,Bit,如果n=-1,上述Java代码将导致无限循环 如何让它打印负整数?运算符是一个“符号扩展”右移运算符,这意味着如果设置了原始值的顶部位,“移入”的位为1。这基本上保持了结果的符号相同 您需要>运算符(无符号右移运算符),该运算符始终“移位”0位,即使顶部位为1 有关详细信息,请参阅或 while (n != 0) { System.out.print(n & 1); n = n >> 1; }

如果n=-1,上述Java代码将导致无限循环


如何让它打印负整数?

运算符是一个“符号扩展”右移运算符,这意味着如果设置了原始值的顶部位,“移入”的位为1。这基本上保持了结果的符号相同

您需要
>
运算符(无符号右移运算符),该运算符始终“移位”0位,即使顶部位为1

有关详细信息,请参阅或

 while (n != 0) {
      System.out.print(n & 1);
      n  = n >> 1;
 }