【发布时间】:2010-07-02 12:50:03
【问题描述】:
例如,我有二进制数 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。错误是什么?
【问题讨论】:
-
一个完整的整数可以用
Integer.reverse(int i)反转 - 但看起来你想用更少的位反转整数,我把它作为评论留下。 -
看起来解决方案已经在这里了:stackoverflow.com/questions/746171/…你错过了最后需要额外的转变
标签: java