package Conversions; import java.util.Scanner; /** * Converts any Hexadecimal Number to Octal * * @author Tanmay Joshi */ public class HexToOct { /** * This method converts a Hexadecimal number to a decimal number * * @param s The Hexadecimal Number * @return The Decimal number */ public static int hex2decimal(String s) { String str = "0123456789ABCDEF"; s = s.toUpperCase(); int val = 0; for (int i = 0; i < s.length(); i++) { char a = s.charAt(i); int n = str.indexOf(a); val = 16 * val + n; } return val; } /** * This method converts a Decimal number to a octal number * * @param q The Decimal Number * @return The Octal number */ public static int decimal2octal(int q) { int now; int i = 1; int octnum = 0; while (q > 0) { now = q % 8; octnum = (now * (int) (Math.pow(10, i))) + octnum; q /= 8; i++; } octnum /= 10; return octnum; } /** * Main method that gets the hex input from user and converts it into octal. * @param args arguments */ public static void main(String args[]) { String hexadecnum; int decnum, octalnum; Scanner scan = new Scanner(System.in); System.out.print("Enter Hexadecimal Number : "); hexadecnum = scan.nextLine(); // first convert hexadecimal to decimal decnum = hex2decimal(hexadecnum); //Pass the string to the hex2decimal function and get the decimal form in variable decnum // convert decimal to octal octalnum = decimal2octal(decnum); System.out.println("Number in octal: " + octalnum); scan.close(); } }