十六进制转换为十进制的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
广告