小编3pi*_*que的帖子

在java中打印二进制数的十进制等值

我的代码是打印用户输入的二进制数的十进制等值.

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的位置.你能帮助我吗?

java binary decimal

3
推荐指数
1
解决办法
1744
查看次数

标签 统计

binary ×1

decimal ×1

java ×1