Java 轉換十六進位制字串為 Int

Rupam Yadav 2023年10月12日
  1. Java 使用 Integer.decode() 將十六進位制短字串轉換為 int
  2. 使用 Long.parseLong() 將長十六進位制字串轉換為 int
  3. 使用 BigInteger 將一個很長的十六進位制字串轉換為 int
Java 轉換十六進位制字串為 Int

本文將介紹我們可以用來將十六進位制字串轉換為 int 的三種方法。十六進位制或十六進位制是一個 16 基數的數字系統,即有 16 種可能的符號代表數字。用來表示數字的十六進位制值是十進位制中的 0-9,A-F 代表十進位制系統中的 10-15。

在下面的例子中,我們將看看在 Java 中把一個給定的不同長度的十六進位制字串轉換為 int 的步驟。

Java 使用 Integer.decode() 將十六進位制短字串轉換為 int

在第一個例子中,我們使用的是 Integer 類的 decode() 函式,該函式接收一個 String,然後返回一個基元 int

在 Java 中,一個 int 可以儲存最小值-231到最大值 231-1。如果我們希望我們的結果是 int 型別的,我們就不能在長字串上工作。本文的進一步例子將展示我們如何將較長的十六進位制值轉換為數值。

public class Main {
  public static void main(String[] args) {
    String hex = "0x2fd";

    int convertedValue = Integer.decode(hex);
    System.out.print(convertedValue);
  }
}

輸出:

765

使用 Long.parseLong() 將長十六進位制字串轉換為 int

正如我們上面所討論的,我們不能將大的十六進位制值轉換為基元 int,因為它可以返回超出 int 容量的值。這就是為什麼在這個例子中,我們使用 Long,它有一個更大的容量,-263到 263-1。

LongparseLong() 方法需要兩個引數,一個字串和一個基值,將字串解析為一個原始的長整數。

public class Main {
  public static void main(String[] args) {
    String hex = "AA0F245C";
    long l = Long.parseLong(hex, 16);
    System.out.println(l);
  }
}

輸出:

2853119068

使用 BigInteger 將一個很長的十六進位制字串轉換為 int

十六進位制值可以用於各種用途,其中之一就是當我們想要加密一些東西的時候,這個十六進位制值可能會很長。如果我們因為某些原因想把這個十六進位制值轉換成數值,那麼我們可以使用 BigInteger,正如它的名字所示,它可以容納大的整數。

在下面的例子中,我們將十六進位制值與基值一起傳遞給 BigInteger 的建構函式。我們也可以從 BigInteger.intValue() 中得到 int 的值,但它只會返回起始的 32 位。

import java.math.BigInteger;

public class Main {
  public static void main(String[] args) {
    String hex = "4D21C5BA77D06212F39E16BF2756E9811125F7FC";
    BigInteger bigInteger = new BigInteger(hex, 16);
    System.out.println(bigInteger);
  }
}

輸出:

440345438517096076415390637616379300179635206140
作者: 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 Int

相關文章 - Java Hex