java 二进制到十进制转换器

标签 java binary conditional-statements decimal converters

这是我的第一个 Java 程序,我很困惑为什么它不起作用。帮忙?

此外,尽管“输入”被赋予了正确的值,但 else 语句仍会打印。我是否缺少条件语句的结构?

package beginning;
import java.util.Scanner;
import java.lang.Math;

// VERY BROKEN

public class BinaryDecimalConverter {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        System.out.println("Number Base To Convert: 1) Binary 2) Decimal ::");
        String binOrDec = sc.next();
        System.out.println("Enter Number ::");
        long number = sc.nextInt();
        double result = 0;

        if ((binOrDec.equals("1")) || (binOrDec.equals("Binary"))) {
            char[] bin = ("" + number).toCharArray(); // conversion must be String >> char[]
            int index = bin.length - 1;
            double aggregate = 0;
            for (int i = 0; i < bin.length; i++) {
                aggregate = ((Math.pow(2, i)) * (bin[index])); // when using Math.pow(a, b) - a must be 'double' data type
                index = index - 1;
                result = result + aggregate;
            }   
        }
        if (binOrDec.equals("2") || binOrDec.equals("Decimal")) {
            // decimal-binary converter, unfinished.
        }
        else {
            System.out.println("Invalid Input");
        }

        System.out.println("" + number + " >> " + result);
        sc.close();

    }

}

最佳答案

你的代码说:如果binOrDec2Decimal,则不执行任何操作,否则,打印无效输入 。计算机会按照你的指示去做。我认为您可能需要在该行前面添加一个 else 来检查 2/Decimal。

“不起作用”并不是一个好的开始。帮助我们帮助您:

  • 如果无法编译,请告诉我们编译器给您提供的错误,并确保行号匹配,否则您可以让我们知道在哪里查找。
  • 如果它确实可以编译,但运行时出现错误,请提供错误以及您提供的导致错误的任何输入。
  • 如果它确实编译并运行,并且您得到输出,但它不是您期望的输出,请解释您输入的内容、您期望的内容以及原因。

您的 bin 数组的类型为 char[]。例如,如果我提供二进制数 1010,它包含 4 个字符:1、0、1 和 0。这就是字符。 ASCII 字符。 ascii 字符 1 具有较大的数值(不是 1):

char c = '1';
System.out.println(1 * c);

上面的打印......49

所以:aggregate = ((Math.pow(2, i)) * (bin[index])); 乘以 4849 取决于该字符是 1 还是 0。我想您可能正在寻找 if (bin[index] == '1')aggregate = Math.pow(2, i);.

关于java 二进制到十进制转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60673356/

相关文章:

Python:如何先读取一个元素,然后读取两个元素?

python - 如何选择 Pandas 中的行范围?

javascript - 数据表内的条件

java - 是否可以将依赖项 CDI 与 Wildfly 一起使用?

java - 收到http错误后如何在Spring Integration中访问自定义 header

string - 如何将 MIPS 数字字符串转换为十六进制

java - 测试这个的最佳方法是什么? 4位二进制数

仅当其他表中的字段满足条件时 MySQL UPDATE

java - Apache POI 依赖项

java - 在java中存储给定键的数组