十六进制转换为十进制的Java程序


题目要求:给定一个十六进制数,编写一个Java程序将其转换为等效的十进制数。十六进制的基值为16,十进制的基值为10。当我们将十六进制转换为十进制时,基值16将变为10。

数字系统分为四种类型:二进制、八进制、十进制和十六进制。基值取决于数字系统中包含的位数。例如,二进制系统只包含两个数字0和1。因此,它的基值为2。

十六进制数系统

它表示从0到9和A到F的数字。它总共有16个数字,其基值也为16。12A16、34B16、45C16是一些十六进制的例子。在计算机中,颜色的代码通常以十六进制形式编写。

假设,我们必须存储一个很大的十进制值,如果我们将其存储在二进制数系统中,则二进制字符串可能会变得非常长。在这种情况下,我们可以使用十六进制数系统,它可以将4位二进制存储为1位。这缩短了位的长度。

十进制数系统

这是最常用的数字系统。它有从0到9的10个数字。因此,其基值为10。如果未提及数字的基值,则认为其为10。单个数字的权重为10的幂,每个数字的权重比前一个数字高10倍。例如,1010、43110、98010等。

十六进制到十进制的转换

给定的十六进制数为(54A)16。要将其转换为十进制,请将每个数字乘以16n-1(其中,n是数字的个数),如下所示:

(54A)16 = 5 * 163-1 + 4 * 162-1 + A * 161-1
		= 5 * 162  + 4 * 161 + 10 * 160  
		= 5 * 256 + 64 + 10 
		= 1280 + 74
		= 1354 

使用Integer.parseInt()方法

这是Integer类的静态方法,它根据指定的基值返回十进制值。它位于java.lang包中。

语法

Integer.parseInt("String", base); 

其中,

  • 字符串 - 将要转换的值。

  • 基数 - 给定值将根据指定的基数进行转换。

示例

在这个例子中,我们将使用Integer.parseInt()方法将十六进制转换为十进制。

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

使用用户定义的方法

在这种方法中,我们将定义一个用户定义的方法。然后,我们将运行一个for循环,直到十六进制数的长度。在这个循环中,我们将获取字符,然后我们将应用转换逻辑。

示例

以下示例是对上面讨论的方法的实际说明。

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

更新于:2024年7月31日

961 次浏览

启动您的职业生涯

通过完成课程获得认证

开始学习
广告