Home >Java >javaTutorial >Java program: hexadecimal to decimal conversion
There are four types of number systems: binary, octal, decimal, and hexadecimal, with base values 2, 8, 10, and 16 respectively. The base value depends on the number of digits the number system contains. For example, the binary number system contains only two digits, 0 and 1, so its base is 2.
In this article, we will discuss hexadecimal and decimal number systems. Also, we will write java program to convert hexadecimal number to decimal number.
It represents the numbers from 0 to 9, A to F. There are 16 numbers in total, and its base value is also 16. The weight of individual numbers is a power of 16, so each number is 16 times heavier than the previous one. 12A16, 34B16, 45C16 are a few examples of hexadecimal. In computers, color codes are usually written in hexadecimal form.
Suppose we have to store a large decimal value, if we store it in binary counting system, then the binary string may become very long. In this case we can use the hexadecimal number system which can store 4 binary bits as 1 bit. It shortens the bit length.
It is the most commonly used number system. It has 10 digits from 0 to 9. Therefore, its base value is 10. If a number's base value is not mentioned, the number is assumed to be 10. Individual numbers are weighted as powers of 10, so each number is 10 times more weighty than the last. For example, 1010, 43110, 98010, etc.
The following table represents the binary and decimal values of all hexadecimal numbers -
binary |
decimal |
hexadecimal |
---|---|---|
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 |
Let us understand how to convert hexadecimal to decimal.
Convert hexadecimal (54A)16 to decimal -
We can convert each number to decimal by multiplying it by 16n-1, where n is the number of digits.
(54A)16 = 5 * 163-1 4 * 162-1 A * 161-1
= 5 * 162 4 * 161 10 * 160 [A = 10 decimal table]
= 5 * 256 64 10 [160 equals 1]
= 1280 74
= 1354
Now, we will see a java program where we will apply the above logic to convert hexadecimal to decimal.
It is a static method of the "Integer" class that returns a decimal value based on the specified base. It is available in the "java.lang" package.
Integer.parseInt("String", base);
String - the value to convert
Base - The given value is converted according to the given 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
In this method, we will create a user-defined method cnvrt() with the parameter "hexNum". We will declare and initialize "hexStr" which will store all hexadecimal digits in the form of a string. We will then run a for loop until the length of the parameter "hexNum". In this loop, we will get the character and its index from "hexStr" and then apply the conversion logic.
In the main method, we will call the method "cnvrt()" with different parameters.
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
In this article, we learned about the types of number systems. These number systems are the basis of any mathematical operation. In addition, two methods of making java programs to convert hexadecimal numbers to decimal numbers are also discussed.
The above is the detailed content of Java program: hexadecimal to decimal conversion. For more information, please follow other related articles on the PHP Chinese website!