- Given a decimal number (base 10), convert decimal to hexadecimal number (base 16) using java.
- We will discuss various methods to convert decimal number to hexadecimal number.
- Convert decimal to hexadecimal using Integer class
- Integer.toHexString
- Integer.toString
- Iterative program to convert decimal number to hexadecimal number.
- Recursive method to convert decimal number to hexadecimal number.
Methods – convert decimal to hexadecimal in java
1.) Convert decimal to hexadecimal using Integer.toHexString
private static String toHexString(int number) {
return Integer.toHexString(number);
}
2.) Convert decimal to hexadecimal using Integer.toString
private static String toString(int number) {
return Integer.toString(number, 16);
}
3.) Convert decimal to hexadecimal using iterative method
private static String iterative(int number) {
StringBuilder builder = new StringBuilder();
String hexCode = "0123456789ABCDEF";
while (number > 0) {
int hexDigit = number % 16;
builder.append(hexCode.charAt(hexDigit));
number /= 16;
}
return builder.reverse().toString();
}
4.) Convert decimal to hexadecimal using recursive method
private static String recursive(int number) {
StringBuilder builder = new StringBuilder();
if (number>0) {
String hexNumber = recursive(number/16);
String hexCode = "0123456789ABCDEF";
int hexDigit = number % 16;
builder.append(hexNumber + hexCode.charAt(hexDigit));
}
return builder.toString();
}
Complete program to convert decimal to hexadecimal
package org.learn;
import java.util.Scanner;
public class DecimalToHexDecimal {
public static void main(String[] args) {
try (Scanner scanner = new Scanner(System.in)) {
System.out.printf("1. Enter decimal number : ");
int number = scanner.nextInt();
String hexadecimal = toHexString(number);
System.out.printf("2. Decimal to hexadecimal - toBinaryString(%d) = %s ", number, hexadecimal);
hexadecimal = toString(number);
System.out.printf("\n3. Decimal to hexadecimal - toString(%d) = %s ", number, hexadecimal);
hexadecimal = iterative(number);
System.out.printf("\n4. Decimal to hexadecimal - iterative(%d) = %s ", number, hexadecimal);
hexadecimal = recursive(number);
System.out.printf("\n5. Decimal to hexadecimal - recursive(%d) = %s ", number, hexadecimal);
}
}
private static String toHexString(int number) {
return Integer.toHexString(number);
}
private static String toString(int number) {
return Integer.toString(number, 16);
}
private static String iterative(int number) {
StringBuilder builder = new StringBuilder();
String hexCode = "0123456789ABCDEF";
while (number > 0) {
int hexDigit = number % 16;
builder.append(hexCode.charAt(hexDigit));
number /= 16;
}
return builder.reverse().toString();
}
private static String recursive(int number) {
StringBuilder builder = new StringBuilder();
if (number > 0) {
String hexNumber = recursive(number / 16);
String hexCode = "0123456789ABCDEF";
int hexDigit = number % 16;
builder.append(hexNumber + hexCode.charAt(hexDigit));
}
return builder.toString();
}
}
Program output – convert decimal to hexadecimal
1. Enter decimal number : 25
2. Decimal to hexadecimal - toBinaryString(25) = 19
3. Decimal to hexadecimal - toString(25) = 19
4. Decimal to hexadecimal - iterative(25) = 19
5. Decimal to hexadecimal - recursive(25) = 19
1. Enter decimal number : 31
2. Decimal to hexadecimal - toBinaryString(31) = 1f
3. Decimal to hexadecimal - toString(31) = 1f
4. Decimal to hexadecimal - iterative(31) = 1F
5. Decimal to hexadecimal - recursive(31) = 1F
1. Enter decimal number : 255
2. Decimal to hexadecimal - toBinaryString(255) = ff
3. Decimal to hexadecimal - toString(255) = ff
4. Decimal to hexadecimal - iterative(255) = FF
5. Decimal to hexadecimal - recursive(255) = FF