Octal To Hexadecimal Algorithm

The Octal to Hexadecimal Algorithm is a computational technique used to convert octal numbers to their equivalent hexadecimal representation. Octal numbers are base-8 numbers, which means they use eight different digits (0-7) to express values, while hexadecimal numbers are base-16 numbers, utilizing sixteen distinct characters (0-9 and A-F) to represent values. Since both octal and hexadecimal numbers are commonly used in computer systems, the algorithm provides an efficient way to convert between these two number systems, which is especially useful when dealing with low-level programming, memory addressing, or debugging tasks. The Octal to Hexadecimal Algorithm involves a two-step process. First, the octal number is converted to its binary equivalent by replacing each octal digit with its corresponding 3-bit binary representation. For example, the octal number 427 would be transformed into the binary number 100010111. After obtaining the binary representation, the algorithm groups the binary digits into sets of four, starting from the least significant bit (LSB) and working towards the most significant bit (MSB), adding leading zeros if necessary. Each 4-bit group is then replaced with its corresponding hexadecimal digit. For instance, the binary number 100010111 would be grouped as 0100 0010 111, and then converted to the hexadecimal number 42F. Thus, the octal number 427 is equivalent to the hexadecimal number 42F.
package Conversions;

import java.util.Scanner;

/**
 * Converts any Octal Number to HexaDecimal
 *
 * @author Tanmay Joshi
 */
public class OctalToHexadecimal {

    /**
     * This method converts a Octal number to a decimal number
     *
     * @param s The Octal Number
     * @return The Decimal number
     */
    public static int octToDec(String s) {
        int i = 0;
        for (int j = 0; j < s.length(); j++) {
            char num = s.charAt(j);
            num -= '0';
            i *= 8;
            i += num;
        }
        return i;
    }

    /**
     * This method converts a Decimal number to a Hexadecimal number
     *
     * @param d The Decimal Number
     * @return The Hexadecimal number
     */
    public static String decimalToHex(int d) {
        String digits = "0123456789ABCDEF";
        if (d <= 0)
            return "0";
        String hex = "";
        while (d > 0) {
            int digit = d % 16;
            hex = digits.charAt(digit) + hex;
            d = d / 16;
        }
        return hex;
    }


    public static void main(String args[]) {

        Scanner input = new Scanner(System.in);
        System.out.print("Enter the Octal number: ");
        // Take octal number as input from user in a string
        String oct = input.next();

        // Pass the octal number to function and get converted deciaml form
        int decimal = octToDec(oct);

        // Pass the decimla number to function and get converted Hex form of the number
        String hex = decimalToHex(decimal);
        System.out.println("The Hexadecimal equivalant is: " + hex);
        input.close();
    }
}

LANGUAGE:

DARK MODE: