在 Java 中轉換二進位制字串為 Int

Rupam Yadav 2023年1月30日 2020年12月19日
  1. 在 Java 中使用 Integer.parseInt() 將二進位制字串轉換為 Int
  2. 在 Java 中使用 Math.pow() 將二進位制字串轉換為 Int
在 Java 中轉換二進位制字串為 Int

二進位制是由 0 和 1 這兩個數字組成,這些數字被用來為機器編寫不同型別的指令。但人類要讀懂這些二進位制程式碼是很困難的。這就是為什麼有各種技術將二進位制轉換成人類可讀的格式。

在本教程中,我們將通過兩種方法來將二進位制字串轉換為 int。我們的目標是將二進位制數進行解析,並輸出一個代表該二進位制數的整型。

在 Java 中使用 Integer.parseInt() 將二進位制字串轉換為 Int

第一個方法是 Integer.parseInt(),它將給定的字串解析成一個 int。當我們將一個字串和基數或基值傳遞給 Integer.parseInt() 時,它會返回一個根據基數計算出來的 int 值。

在本例中,binaryString 有一個二進位制值,需要轉換為 intInteger.parseInt(binaryString, 2) 中,第一個引數是字串,第二個引數是 2,因為二進位制是一個基數-2 的數字系統。

如果 binaryString 包含一個非二進位制的值,那麼就會丟擲一個 NumberFormatException 並顯示錯誤資訊。

public class BinaryStringToInt {
    public static void main(String[] args) {
      
        try {
            String binaryString = "10010";
            int foo = Integer.parseInt(binaryString, 2);

            System.out.println(foo);
        } catch (NumberFormatException e) {
            System.out.println("Error: The binary string is not valid");
        }
      
    }
}

輸出:

18

在 Java 中使用 Math.pow() 將二進位制字串轉換為 Int

在這個方法中,我們將檢查 binaryString 的每一個字元,因為我們知道在 Java 中字串是一個字元序列。我們需要迴圈檢查每一個字元,直到字串的長度。

下一步是檢查 binaryString 中 1 的出現,因為只有當我們將二進位制轉換為十進位制時,才會新增 1。如果有 1,就會先用 1 和迭代的值來減少 binaryString 的長度。所以,在 101000 的情況下,第一個字元是 1,這意味著 int len 為 5,因為 binaryString.length() 是 6,而迭代變數 i 為 0,所以意味著 6 - 1 - 0 將是 5。

現在,我們得到 5,並將它作為第二個引數傳遞給 Math.pow(base, len),而第一個引數將是基數。它將應用 base-2 對數字進行計算,然後將所有數字相加,得到 int 的結果。

public class Main {

    public static void main(String[] args) {

        String binaryString = "101000";
        double convertedDouble = 0;

        for (int i = 0; i < binaryString.length(); i++) {

            if (binaryString.charAt(i) == '1') {
                int len = binaryString.length() - 1 - i;
                convertedDouble += Math.pow(2, len);
            }
        }

        int convertedInt = (int) convertedDouble;
        System.out.println(convertedInt);
    }
}

輸出:

40
Author: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

相關文章 - Java String

相關文章 - Java Int