簡體   English   中英

java二進制轉十進制轉換器

[英]java binary to decimal converter

這是我的第一個 Java 程序之一,我很困惑為什么它不起作用。 幫助?

此外,盡管 'input' 被賦予了正確的值,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 ,什么都不做,否則,打印invalid input 計算機做你告訴他們做的事情。 我認為您可能希望在該行前面有一個else來檢查 2/Decimal。

“不起作用”不是一個好的開始。 幫助我們幫助您:

  • 如果它不編譯,告訴我們編譯器給你的錯誤,並確保行號匹配,否則你可以讓我們知道在哪里查找。
  • 如果它確實可以編譯,但在運行時出現錯誤,請提供錯誤以及您提供的導致錯誤的任何輸入。
  • 如果它確實編譯並運行,並且您得到輸出,但它不是您期望的輸出,請解釋您輸入什么來獲取它,您期望什么,以及為什么。

您的bin數組的類型為char[] 例如,如果我提供二進制數1010 ,它包含 4 個字符:1、0、1 和 0。那就是characters 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); .

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM