我的代码是打印用户输入的二进制数的十进制等值.
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.print("Enter a binary integer: ");
int b=in.nextInt();
int digits=1;
int q=b;
//determine the number of digits
while(q/10>=1){
++digits;
q/=10;
}
System.out.println(digits);
int decimal=0;
int i=0;
//pick off the binary number's digits and calculate the decimal equivalent
while(i<=digits-1){
decimal+=b/Math.pow(10,i)%10*Math.pow(2,i);
i++;
}
System.out.println(decimal);
}
}
Run Code Online (Sandbox Code Playgroud)
当我输入1101时,它输出13,这是正确的答案.但是,当我测试数字11001时,十进制等值应该是25,但它输出26.我尝试修复它但无法找到bug的位置.你能帮助我吗?