# Convert octal to hexadecimal number

Octal and hexadecimal are two different numbering systems used to represent numbers in computing. Octal is a base-8 numbering system, which means it uses eight digits, namely 0, 1, 2, 3, 4, 5, 6, and 7, to represent numbers. Hexadecimal, on the other hand, is a base-16 numbering system that uses sixteen digits, namely 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, and F, to represent numbers.

Converting an octal number to a hexadecimal number involves converting the octal number into its equivalent binary number and then converting the binary number to a hexadecimal number. The steps to convert an octal number to a hexadecimal number are as follows:

1. Write down the octal number.
2. Convert each octal digit to its equivalent binary digit (using 3 bits for each octal digit).
3. Group the binary digits into groups of four starting from the right.
4. Convert each group of four binary digits to its equivalent hexadecimal digit.
5. Write down the hexadecimal digits to get the final hexadecimal number.

Here's an example:

Convert the octal number 752 to a hexadecimal number.

1. The octal number is 752.
2. Converting each octal digit to its equivalent binary digit, we get: 7 -> 111 5 -> 101 2 -> 010
3. Grouping the binary digits into groups of four starting from the right, we get: 111 101 010 as [111101010]
4. Converting each group of four [0001,1110,1010] binary digits to its equivalent hexadecimal digit, we get: 1 E A
5. Write down the hexadecimal digits to get the final hexadecimal number: 1EA.

Therefore, the hexadecimal equivalent of the octal number 752 is 1EA.

## Program Solution

``````//C Program
//Convert octal to hexadecimal number
#include <stdio.h>

//Reverse the resultant of hexadecimal
void reverse(char str[], int start, int end)
{
char temp;
for (start; start < end; start++, end--)
{
temp = str[start];
str[start] = str[end];
str[end] = temp;
}
}
//Transform Decimal to hexadecimal
void decimal_to_hexadecimal(int number, char result[])
{
int digit = 0;
int index = 0;
while (number != 0)
{
digit = number % 16;
if (digit < 0)
{
digit = -digit;
}
if (digit < 10)
{
//48 ASCII of '0'
result[index] = digit + 48;
}
else if (digit >= 10)
{
//55 ASCII of '7'
result[index] = digit + 55;
}
index++;
number /= 16;
}
if (index >= 1)
{
//add null char
result[index] = '\0';
reverse(result, 0, index - 1);
}
}
long long octal_to_decimal(long long number)
{
long long result = 0, multiplier = 1;
int remainder = 0;
while (number != 0)
{
remainder = number % 10;
result = (remainder * multiplier) + result;
multiplier *= 8;
number /= 10;
}
return result;
}
void octal_to_hexa(long long number)
{
printf("Octal : %lld  ", number);
int flag = 0;
if (number < 0)
{
//When number is negative number
flag = 1;
number = -number;
}
number = octal_to_decimal(number);
//Used to store result
char result[32];
decimal_to_hexadecimal(number, result);
if (flag == 1)
{
printf("Hexadecimal : -%s\n", result);
}
else
{
printf("Hexadecimal : %s\n", result);
}
}
int main()
{
//Test Cases
octal_to_hexa(16);
octal_to_hexa(45);
octal_to_hexa(-35);
octal_to_hexa(63);
return 0;
}``````

#### Output

``````Octal : 16  Hexadecimal : E
Octal : 45  Hexadecimal : 25
Octal : -35  Hexadecimal : -1D
Octal : 63  Hexadecimal : 33``````
``````/*
Java Program
Convert octal to hexadecimal number
*/
class MyNumber
{
//Transform Decimal to hexadecimal
public String decimal_to_hexadecimal(long number)
{
long digit = 0;
String result = "";
while (number != 0)
{
digit = number % 16;
if (digit < 0)
{
digit = -digit;
}
if (digit < 10)
{
//48 ASCII of '0'
result = (char)(digit + 48) + result;
}
else if (digit >= 10)
{
//55 ASCII of '7'
result = (char)(digit + 55) + result;
}
number /= 16;
}
return result;
}
public long octal_to_decimal(long number)
{
long result = 0, multiplier = 1;
long remainder = 0;
while (number != 0)
{
remainder = number % 10;
result = (remainder * multiplier) + result;
multiplier *= 8;
number /= 10;
}
return result;
}
public void octal_to_hexa(long number)
{
System.out.print("Octal :  " + number);
int flag = 0;
if (number < 0)
{
//When number is negative number
flag = 1;
number = -number;
}
number = octal_to_decimal(number);
String result = decimal_to_hexadecimal(number);
if (flag == 1)
{
result = "-" + result;
}
System.out.print(" Hexadecimal : " + result + "\n\n");
}
public static void main(String[] args)
{
MyNumber obj = new MyNumber();
//Test Cases
obj.octal_to_hexa(16);
obj.octal_to_hexa(45);
obj.octal_to_hexa(-35);
obj.octal_to_hexa(63);
}
}``````

#### Output

``````Octal :  16 Hexadecimal : E

Octal :  45 Hexadecimal : 25

Octal :  -35 Hexadecimal : -1D

Octal :  63 Hexadecimal : 33
``````
``````//Include header file
#include <iostream>

using namespace std;
/*
C++ Program
Convert octal to hexadecimal number
*/
class MyNumber
{
public:
//Transform Decimal to hexadecimal
string decimal_to_hexadecimal(long number)
{
long digit = 0;
string result = "";
while (number != 0)
{
digit = number % 16;
if (digit < 0)
{
digit = -digit;
}
if (digit < 10)
{
//48 ASCII of '0'
result = (char)(digit + 48) + result;
}
else if (digit >= 10)
{
//55 ASCII of '7'
result = (char)(digit + 55) + result;
}
number /= 16;
}
return result;
}
long octal_to_decimal(long number)
{
long result = 0, multiplier = 1;
long remainder = 0;
while (number != 0)
{
remainder = number % 10;
result = (remainder * multiplier) + result;
multiplier *= 8;
number /= 10;
}
return result;
}
void octal_to_hexa(long number)
{
cout << "Octal :  " << number;
int flag = 0;
if (number < 0)
{
//When number is negative number
flag = 1;
number = -number;
}
number = this->octal_to_decimal(number);
string result = this->decimal_to_hexadecimal(number);
if (flag == 1)
{
result = "-" + result;
}
cout << " Hexadecimal : " << result << "\n\n";
}
};
int main()
{
MyNumber obj = MyNumber();
//Test Cases
obj.octal_to_hexa(16);
obj.octal_to_hexa(45);
obj.octal_to_hexa(-35);
obj.octal_to_hexa(63);
return 0;
}``````

#### Output

``````Octal :  16 Hexadecimal : E

Octal :  45 Hexadecimal : 25

Octal :  -35 Hexadecimal : -1D

Octal :  63 Hexadecimal : 33
``````
``````//Include namespace system
using System;
/*
C# Program
Convert octal to hexadecimal number
*/
class MyNumber
{
//Transform Decimal to hexadecimal
public String decimal_to_hexadecimal(long number)
{
long digit = 0;
String result = "";
while (number != 0)
{
digit = number % 16;
if (digit < 0)
{
digit = -digit;
}
if (digit < 10)
{
//48 ASCII of '0'
result = (char)(digit + 48) + result;
}
else if (digit >= 10)
{
//55 ASCII of '7'
result = (char)(digit + 55) + result;
}
number /= 16;
}
return result;
}
public long octal_to_decimal(long number)
{
long result = 0, multiplier = 1;
long remainder = 0;
while (number != 0)
{
remainder = number % 10;
result = (remainder * multiplier) + result;
multiplier *= 8;
number /= 10;
}
return result;
}
public void octal_to_hexa(long number)
{
Console.Write("Octal :  " + number);
int flag = 0;
if (number < 0)
{
//When number is negative number
flag = 1;
number = -number;
}
number = octal_to_decimal(number);
String result = decimal_to_hexadecimal(number);
if (flag == 1)
{
result = "-" + result;
}
Console.Write(" Hexadecimal : " + result + "\n\n");
}
public static void Main(String[] args)
{
MyNumber obj = new MyNumber();
//Test Cases
obj.octal_to_hexa(16);
obj.octal_to_hexa(45);
obj.octal_to_hexa(-35);
obj.octal_to_hexa(63);
}
}``````

#### Output

``````Octal :  16 Hexadecimal : E

Octal :  45 Hexadecimal : 25

Octal :  -35 Hexadecimal : -1D

Octal :  63 Hexadecimal : 33
``````
``````<?php
/*
Php Program
Convert octal to hexadecimal number
*/
class MyNumber
{
//Transform Decimal to hexadecimal
public  function decimal_to_hexadecimal(\$number)
{
\$digit = 0;
\$result = "";
while (\$number != 0)
{
\$digit = \$number % 16;
if (\$digit < 0)
{
\$digit = -\$digit;
}
if (\$digit < 10)
{
//48 ASCII of '0'
\$result = chr((\$digit + 48)) . \$result;
}
else if (\$digit >= 10)
{
//55 ASCII of '7'
\$result = chr((\$digit + 55)) . \$result;
}
\$number = intval(\$number / 16);
}
return \$result;
}
public  function octal_to_decimal(\$number)
{
\$result = 0;
\$multiplier = 1;
\$remainder = 0;
while (\$number != 0)
{
\$remainder = \$number % 10;

\$result = (\$remainder *\$multiplier) + \$result;
\$multiplier *= 8;

\$number = intval(\$number / 10);
}
return \$result;
}
public  function octal_to_hexa(\$number)
{
echo("Octal : ". \$number);
\$flag = 0;
if (\$number < 0)
{
//When number is negative number
\$flag = 1;
\$number = -\$number;
}
\$number = \$this->octal_to_decimal(\$number);
\$result = \$this->decimal_to_hexadecimal(\$number);
if (\$flag == 1)
{
\$result = "-". \$result;
}
echo(" Hexadecimal : ". \$result ."\n\n");
}
}

function main()
{
\$obj = new MyNumber();
//Test Cases
\$obj->octal_to_hexa(16);
\$obj->octal_to_hexa(45);
\$obj->octal_to_hexa(-35);
\$obj->octal_to_hexa(63);
}
main();``````

#### Output

``````Octal : 16 Hexadecimal : E

Octal : 45 Hexadecimal : 25

Octal : -35 Hexadecimal : -1D

Octal : 63 Hexadecimal : 33
``````
``````/*
Node Js Program
Convert octal to hexadecimal number
*/
class MyNumber
{
//Transform Decimal to hexadecimal
decimal_to_hexadecimal(number)
{
var digit = 0;
var result = "";
while (number != 0)
{
digit = number % 16;
if (digit < 0)
{
digit = -digit;
}
if (digit < 10)
{
//48 ASCII of '0'
result = String.fromCharCode((digit + 48)) + result;
}
else
if (digit >= 10)
{
//55 ASCII of '7'
result = String.fromCharCode((digit + 55)) + result;
}
number = parseInt(number / 16);
}
return result;
}
octal_to_decimal(number)
{
var result = 0;
var multiplier = 1;
var remainder = 0;
while (number != 0)
{
remainder = number % 10;

result = (remainder *multiplier) + result;
multiplier *= 8;

number = parseInt(number / 10);
}
return result;
}
octal_to_hexa(number)
{
process.stdout.write("Octal : " + number);
var flag = 0;
if (number < 0)
{
//When number is negative number
flag = 1;
number = -number;
}
number = this.octal_to_decimal(number);
var result = this.decimal_to_hexadecimal(number);
if (flag == 1)
{
result = "-" + result;
}
process.stdout.write(" Hexadecimal : " + result + "\n\n");
}
}

function main(args)
{
var obj = new MyNumber();
//Test Cases
obj.octal_to_hexa(16);
obj.octal_to_hexa(45);
obj.octal_to_hexa(-35);
obj.octal_to_hexa(63);
}
main();``````

#### Output

``````Octal : 16 Hexadecimal : E

Octal : 45 Hexadecimal : 25

Octal : -35 Hexadecimal : -1D

Octal : 63 Hexadecimal : 33
``````
``````#   Python 3 Program
#   Convert octal to hexadecimal number

class MyNumber :
# Transform Decimal to hexadecimal
def decimal_to_hexadecimal(self, number) :
digit = 0
result = ""
while (number != 0) :
digit = number % 16
if (digit < 0) :
digit = -digit

if (digit < 10) :
# 48 ASCII of '0'
result = chr((digit + 48)) + result
elif (digit >= 10) :
# 55 ASCII of '7'
result = chr((digit + 55)) + result

number = int(number / 16)

return result

def octal_to_decimal(self, number) :
result = 0
multiplier = 1
remainder = 0
while (number != 0) :
remainder = number % 10

result = (remainder * multiplier) + result
multiplier *= 8

number = int(number / 10)

return result

def octal_to_hexa(self, number) :
print("Octal : ", number, end = "")
flag = 0
if (number < 0) :
# When number is negative number
flag = 1
number = -number

number = self.octal_to_decimal(number)
result = self.decimal_to_hexadecimal(number)
if (flag == 1) :
result = "-"+ result

print(" Hexadecimal : ", result ,"\n\n", end = "")

def main() :
obj = MyNumber()
# Test Cases
obj.octal_to_hexa(16)
obj.octal_to_hexa(45)
obj.octal_to_hexa(-35)
obj.octal_to_hexa(63)

if __name__ == "__main__": main()``````

#### Output

``````Octal :  16 Hexadecimal :  E

Octal :  45 Hexadecimal :  25

Octal :  -35 Hexadecimal :  -1D

Octal :  63 Hexadecimal :  33
``````
``````#   Ruby Program
#   Convert octal to hexadecimal number

class MyNumber

# Transform Decimal to hexadecimal
def decimal_to_hexadecimal(number)

digit = 0
result = ""
while (number != 0)

digit = number % 16
if (digit < 0)

digit = -digit
end
if (digit < 10)

# 48 ASCII of '0'
result = ((digit + 48)).chr + result
elsif (digit >= 10)

# 55 ASCII of '7'
result = ((digit + 55)).chr + result
end
number /= 16
end
return result
end
def octal_to_decimal(number)

result = 0
multiplier = 1
remainder = 0
while (number != 0)

remainder = number % 10

result = (remainder * multiplier) + result
multiplier *= 8

number /= 10
end
return result
end
def octal_to_hexa(number)

print("Octal  : ", number)
flag = 0
if (number < 0)

# When number is negative number
flag = 1
number = -number
end
number = self.octal_to_decimal(number)
result = self.decimal_to_hexadecimal(number)
if (flag == 1)

result = "-"+ result
end
print(" Hexadecimal  : ", result ,"\n\n")
end
end
def main()

obj = MyNumber.new()
# Test Cases
obj.octal_to_hexa(16)
obj.octal_to_hexa(45)
obj.octal_to_hexa(-35)
obj.octal_to_hexa(63)
end
main()``````

#### Output

``````Octal  : 16 Hexadecimal  : E

Octal  : 45 Hexadecimal  : 25

Octal  : -35 Hexadecimal  : -1D

Octal  : 63 Hexadecimal  : 33

``````
``````/*
Scala Program
Convert octal to hexadecimal number
*/
class MyNumber
{
//Transform Decimal to hexadecimal
def decimal_to_hexadecimal(num: Long): String = {
var digit: Long = 0;
var number: Long = num;
var result: String = "";
while (number != 0)
{
digit = number % 16;
if (digit < 0)
{
digit = -digit;
}
if (digit < 10)
{
//48 ASCII of '0'
result = ""+ ((digit + 48)).toChar + result;
}
else if (digit >= 10)
{
//55 ASCII of '7'
result = ""+ ((digit + 55)).toChar + result;
}
number = (number / 16).toInt;
}
return result;
}
def octal_to_decimal(num: Long): Long = {
var result: Long = 0;
var multiplier: Long = 1;
var remainder: Long = 0;
var number: Long = num;
while (number != 0)
{
remainder = number % 10;

result = (remainder * multiplier) + result;
multiplier *= 8;

number = (number / 10).toInt;
}
return result;
}
def octal_to_hexa(num: Long): Unit = {
var number: Long = num;
print("Octal : " + number);
var flag: Int = 0;
if (number < 0)
{
//When number is negative number
flag = 1;
number = -number;
}
number = octal_to_decimal(number);
var result: String = decimal_to_hexadecimal(number);
if (flag == 1)
{
result = "-" + result;
}
print(" Hexadecimal : " + result + "\n\n");
}
}
object Main
{
def main(args: Array[String]): Unit = {
var obj: MyNumber = new MyNumber();
//Test Cases
obj.octal_to_hexa(16);
obj.octal_to_hexa(45);
obj.octal_to_hexa(-35);
obj.octal_to_hexa(63);
}
}``````

#### Output

``````Octal : 16 Hexadecimal : E

Octal : 45 Hexadecimal : 25

Octal : -35 Hexadecimal : -1D

Octal : 63 Hexadecimal : 33
``````
``````/*
Swift Program
Convert octal to hexadecimal number
*/
class MyNumber
{
//Transform Decimal to hexadecimal
func decimal_to_hexadecimal(_ num: Int) -> String
{
var digit: Int = 0;
var result: String = "";
var number: Int = num;
while (number != 0)
{
digit = number % 16;
if (digit < 0)
{
digit = -digit;
}
if (digit < 10)
{
//48 ASCII of "0"
result = String(UnicodeScalar(UInt8((digit + 48)))) + result;
}
else
if (digit >= 10)
{
//55 ASCII of "7"
result = String(UnicodeScalar(UInt8((digit + 55)))) + result;
}
number /= 16;
}
return result;
}
func octal_to_decimal(_ num:  Int) -> Int
{
var result: Int = 0;
var multiplier: Int = 1;
var remainder: Int = 0;
var number: Int = num;
while (number != 0)
{
remainder = number % 10;

result = (remainder * multiplier) + result;
multiplier *= 8;

number /= 10;
}
return result;
}
func octal_to_hexa(_ num:  Int)
{
var number: Int = num;
print("Octal : ", number, terminator: "");
var flag: Int = 0;
if (number < 0)
{
//When number is negative number
flag = 1;
number = -number;
}
number = self.octal_to_decimal(number);
var result: String = self.decimal_to_hexadecimal(number);
if (flag == 1)
{
result = "-" + result;
}
print(" Hexadecimal : ", result ,"\n\n", terminator: "");
}
}
func main()
{
let obj: MyNumber = MyNumber();
//Test Cases
obj.octal_to_hexa(16);
obj.octal_to_hexa(45);
obj.octal_to_hexa(-35);
obj.octal_to_hexa(63);
}
main();``````

#### Output

``````Octal :  16 Hexadecimal :  E

Octal :  45 Hexadecimal :  25

Octal :  -35 Hexadecimal :  -1D

Octal :  63 Hexadecimal :  33
``````

## Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

### New Comment

Kalkicode     306 Day ago
``You are right [ Webfalter] Thanks for the information. We are investigating what's wrong and will update as soon as possible.``
Webfalter     320 Day ago
``````Swift Program
Convert octal to hexadecimal number
obj.octal_to_hexa(12); not A``````