- Given a decimal number (base 10), convert decimal number to hexadecimal (base 16) using java.
- We will discuss various methods to convert decimal integer to hexadecimal.
- Convert decimal to hexadecimal using Integer class
- Integer.toHexString(int number)
- Integer.toString(int number, int radix)
- Iterative program to convert decimal integer to hexadecimal number.
- Recursive method to convert decimal integer to hexadecimal number.
- Convert decimal to hexadecimal using Integer class
Java JDK methods to convert decimal to hexadecimal:
Method Name | Description |
---|---|
String toHexString(int i) | Returns a string representation of the integer argument as an unsigned integer in base 16. |
String toString(int i, int radix) | Returns a string representation of the first argument in the radix specified by the second argument. |
Methods to convert decimal integer to hexadecimal :
1.) Convert decimal to hexadecimal using Integer.toHexString
private static final String toHexString( int number) { return Integer.toHexString(number).toUpperCase(); } |
2.) Convert decimal to hexadecimal using Integer.toString
private static final String toString( int number) { return Integer.toString(number, 16 ).toUpperCase(); } |
3.) Convert decimal to hexadecimal using iterative method
private static String iterative( int number) { StringBuilder builder = new StringBuilder(); while (number > 0 ) { int remainder = number % 16 ; char hexCode = hexCodes[remainder]; builder.append(hexCode); number = 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 ); int digit = number % 16 ; char hexDigit = hexCodes[digit]; builder.append(hexNumber + hexDigit); } return builder.toString(); } |
Complete program to convert decimal number to hexadecimal
package org.learn; import java.util.Scanner; public class DecimalToHex { private static char [] hexCodes = { '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , 'A' , 'B' , 'C' , 'D' , 'E' , 'F' }; private static String iterative( int number) { StringBuilder builder = new StringBuilder(); while (number > 0 ) { int remainder = number % 16 ; char hexCode = hexCodes[remainder]; builder.append(hexCode); number = number / 16 ; } return builder.reverse().toString(); } private static String recursive( int number) { StringBuilder builder = new StringBuilder(); if (number > 0 ) { String hexNumber = recursive(number / 16 ); int digit = number % 16 ; char hexDigit = hexCodes[digit]; builder.append(hexNumber + hexDigit); } return builder.toString(); } private static final String toString( int number) { return Integer.toString(number, 16 ).toUpperCase(); } private static final String toHexString( int number) { return Integer.toHexString(number).toUpperCase(); } 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 hex = toHexString(number); System.out.printf( "2. Hex of (%d) using toHexString method = %s\n" , number, hex); hex = toString(number); System.out.printf( "3. Hex of (%d) using toString method = %s\n" , number, hex); hex = iterative(number); System.out.printf( "4. Hex of (%d) using iterative method = %s\n" , number, hex); hex = recursive(number); System.out.printf( "5. Hex of (%d) using recursive method = %s\n" , number, hex); } } } |
Program output – convert decimal number to hexadecimal
1 . Enter decimal number : 100 2 . Hex of ( 100 ) using toHexString method = 64 3 . Hex of ( 100 ) using toString method = 64 4 . Hex of ( 100 ) using iterative method = 64 5 . Hex of ( 100 ) using recursive method = 64 1 . Enter decimal number : 255 2 . Hex of ( 255 ) using toHexString method = FF 3 . Hex of ( 255 ) using toString method = FF 4 . Hex of ( 255 ) using iterative method = FF 5 . Hex of ( 255 ) using recursive method = FF |