Java Decimal to Hexadecimal Conversion
In Mathematics, we use various positional numbering schemes for representing numbers. We are familiar with decimal numbering system which uses a base of 10. Two other commonly used numbering systems in computing are hexadecimal (base 16) and binary (base 2).
Conversion of decimal value to hex string requires the following steps,
- Find the reminder of the decimal value when it is divided by 16.
- Find the corresponding hex character to get the right most character of the hex result
- Divide the decimal value by 16 and use it as the decimal value for the next iteration
- Repeat the steps to get each character in the hex result
The following program uses the above algorithm to convert decimal value to its corresponding hexadecimal string,
/**
* Converts a decimal number to a hexadecimal string
*/
public class DecimalToHex {
public static String HEX_CHARACTERS="0123456789ABCDEF";
public static void main(String[] args) {
DecimalToHex dh = new DecimalToHex();
int decValue = 922;
String hex = dh.dec2hex(decValue);
System.out.println("Hexadecimal value of "+decValue+" is "+hex);
}
/**
*
* @param decValue decimal value to be converted
* @return hexadecimal string representation
*/
private String dec2hex(int decValue) {
if(decValue==0) return "0";
String hexVal="";
while(decValue > 0) {
// find right most digit in hex
int digit = decValue%16;
hexVal = HEX_CHARACTERS.charAt(digit)+hexVal;
decValue = decValue/16;
}
return hexVal;
}
}