首頁  >  文章  >  Java  >  Java程式:十六進位轉十進位轉換

Java程式:十六進位轉十進位轉換

WBOY
WBOY轉載
2023-08-26 13:01:053847瀏覽

Java程式:十六進位轉十進位轉換

數字系統有四種:二進位、八進位、十進位和十六進位,基底值分別為 2、8、10 和 16。基值取決於數字系統包含的位數。例如,二進制數係統僅包含 0 和 1 兩個數字,因此其基數為 2。

在本文中,我們將討論十六進制和十進制數字系統。另外,我們將編寫java程式將十六進位數轉換為十進位數。

十六進位與十進位數字系統

十六進位數字系統

它代表0到9、A到F的數字。總共有16個數字,它的基底值也是16。單一數字的權重是16的冪,每個數字都是16倍比上一張重。 12A16、34B16、45C16 是十六進位的幾個範例。在計算機中,顏色代碼通常以十六進制形式編寫。

假設我們必須儲存一個很大的十進制值,如果我們將它儲存在二進位計數系統中,那麼二進位字串可能會變得很長。在這種情況下,我們可以使用十六進位數字系統,可以將 4 位元二進位儲存為 1 位元。它縮短了位元的長度。

十進位數字系統

它是最常用的數字系統。它有從 0 到 9 的 10 位數字。因此,它的基底值為 10。如果沒有提到數字的基值,則認為該數字是 10。單一數字的權重為 10 的冪,每個數字都是 10 倍比上一篇更有分量。例如1010、43110、98010等

下表表示所有十六進位數字的二進位和十進位值 -

二進位

#十進位

#十六進位

0001

#1

1

0010

#2

2

0011

#3

3

0100

#4

4

0101

#5

5

0110

#6

6

0111

#7

7

1000

#8

8

1001

#9

9

1010

#10

#A

1011

#11

B

1100

#12

#C

1101

#13

#D

1110

#14

#E

1111

#15

#F

十六進位到十進位轉換

讓我們了解如何將十六進位轉換為十進位。

範例 1

將十六進位 (54A)16 轉換為十進位 -

我們可以透過將每個數字乘以 16n-1 將其轉換為十進制,其中 n 是位數。

(54A)16 = 5 * 163-1 4 * 162-1 A * 161-1

= 5 * 162 4 * 161 10 * 160 【A = 10 的十進位看表】

= 5 * 256 64 10 [160 等於 1]

= 1280 74

= 1354

現在,我們將看到一個java程序,我們將在其中應用上述邏輯將十六進制轉換為十進制。

方法一:使用parseInt()方法

它是「Integer」類別的靜態方法,根據指定的基數傳回一個十進位值。它在“java.lang”包中可用。

文法

Integer.parseInt("String", base); 

參數

  • String - 要轉換的值

  • #Base - 給定值根據給定基數進行轉換

#範例

public class Conversion {
   public static void main(String args[]) {  
      // Converting and storing hexadecimal value to dec1 and dec2 with base 16  
      int dec1 = Integer.parseInt("54A", 16);
      int dec2 = Integer.parseInt("41C", 16);
      System.out.println("Decimal value of given Hexadecimal: " + dec1);
      System.out.println("Decimal value of given Hexadecimal: " + dec2);
   }
}

輸出

Decimal value of given Hexadecimal: 1354
Decimal value of given Hexadecimal: 1052

方法二:使用使用者自訂方法

在這個方法中,我們將建立一個使用者定義的方法 cnvrt() 以及參數「hexNum」。我們將聲明並初始化“hexStr”,它將以字串的形式儲存所有十六進位數字。然後,我們將執行一個 for 循環,直到參數「hexNum」的長度。在該循環中,我們將從“hexStr”中獲取字元及其索引,然後套用轉換邏輯。

在主方法中,我們將使用不同的參數呼叫方法「cnvrt()」。

範例

public class Conversion {
   public static void cnvrt(String hexNum) {
      // storing all the hexadecimal digits to this string 
      String hexStr = "0123456789ABCDEF"; 
      // converting given argument to uppercase
      hexNum = hexNum.toUpperCase();   
      int dec = 0;  
      for (int i = 0; i < hexNum.length(); i++) {  
         char ch = hexNum.charAt(i); 
         // fetching characters sequentially 
         int index = hexStr.indexOf(ch); 
         // fetching index of characters  
         dec = 16 * dec + index; 
         // applying the logic of conversion 
      }
      System.out.println("Decimal value of given Hexadecimal: " + dec); 
   }
   public static void main(String args[]) {
      // calling the function with arguments
      cnvrt("54A"); 
      cnvrt("41C");  
   }
}

輸出

Decimal value of given Hexadecimal: 1354
Decimal value of given Hexadecimal: 1052

結論

在本文中,我們了解了數字系統的類型。這些數字系統是任何數學運算的基礎。另外,也討論了兩種製作java程式將十六進位數轉換為十進位數的方法。

以上是Java程式:十六進位轉十進位轉換的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除