diff --git a/Conversions/HexToOct.java b/Conversions/HexToOct.java new file mode 100644 index 000000000000..d00b0a90ebb2 --- /dev/null +++ b/Conversions/HexToOct.java @@ -0,0 +1,74 @@ +/** + + * Converts any Hexadecimal Number to Octal + + * + + * @author Tanmay Joshi + + * + + */ +import java.util.Scanner; + +public class HexToOct +{ + /** + + * This method converts a Hexadecimal number to + + * a decimal number + + * + + * @param 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 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. + 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); + + + } +}