例如,我有二进制数 1011,它等于十进制的 11。我想要反转位的位置,使其变为 1101,即十进制的 13。代码如下:
import java.util.*;
public class bits {
public static void main(String[] args) {
Scanner scnr=new Scanner(System.in);
System.out.println("enter x:");
int x=scnr.nextInt();
int b=0;
while (x!=0){
b|=( x &1);
x>>=1;
b<<=1;
}
System.out.println(b);
}
}
但是当我输入 x 11 然后它打印 26。错误是什么?
原文由 user466534 发布,翻译遵循 CC BY-SA 4.0 许可协议
您正在移动
b
一次太多了。首先进行轮班(以便第一次,当b == 0
时,它没有任何效果):