在 Java 中轉換二進位制字串為 Int
二進位制是由 0 和 1 這兩個數字組成,這些數字被用來為機器編寫不同型別的指令。但人類要讀懂這些二進位制程式碼是很困難的。這就是為什麼有各種技術將二進位制轉換成人類可讀的格式。
在本教程中,我們將通過兩種方法來將二進位制字串轉換為 int
。我們的目標是將二進位制數進行解析,並輸出一個代表該二進位制數的整型。
在 Java 中使用 Integer.parseInt()
將二進位制字串轉換為 Int
第一個方法是 Integer.parseInt()
,它將給定的字串解析成一個 int
。當我們將一個字串和基數或基值傳遞給 Integer.parseInt()
時,它會返回一個根據基數計算出來的 int
值。
在本例中,binaryString
有一個二進位制值,需要轉換為 int
。Integer.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
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 中以十六進位制字串轉換位元組陣列
- 如何在 Java 中執行字串到字串陣列的轉換
- 如何將 Java 字串轉換為位元組
- 如何從 Java 中的字串中刪除子字串
- 用 Java 生成隨機字串
- Java 中的交換方法