import java.util.Scanner; //二进制转十进制 public class Test09 { public static void main(String[] args) { //输入二进制数字 Scanner scanner = new Scanner(System.in); int num = scanner.nextInt(); int i = 0; int sum ; int x = 0; if (num%10==1){ sum = 1; }else{ sum = 0; } while (num>0){ x = num%10; i++; if (x==1){ sum = sum+2^i; }else{ sum+=0; } } System.out.println(sum); } }

刚学java,输入数字后,回车没反应
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
7条回答 默认 最新
- 小亮点科技 2021-03-19 17:36关注
while (num>0){ x = num%10; i++; if (x==1){ sum = sum+2^i; }else{ sum+=0; } }
这个循环里没有把num做改变。就进入了死循环。
看你的意思是想把输入的数据做为2进制求出值。
所以在这个循环里面应该加上 num /= 10;
while (num>0){
x = num%10;
i++;
if (x==1){
sum = sum+2^i;
}else{
sum+=0;
}
num /= 10;
}
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 3无用