In the previous article, we have discussed Python Program to Convert Decimal to Hexadecimal
Given an octal number and the task is to get the respective hexadecimal number.
Examples:
Example1:
Input:
Given Octal number = 24
Output:
The Hexadecimal value of the given octal number { 24 } is:
14Example2:
Input:
Given Octal number = 72
Output:
The Hexadecimal value of the given octal number { 72 } is:
3AProgram to Convert Octal to Hexadecimal in Python
Below are the ways to convert the given octal number into hexadecimal :
Method #1: Using While Loop (Static Input)
Approach:
- Give the octal number as static input and store it in a variable.
- Take a variable say ‘k‘ and initialize its value with 0.
- Take a list of length 50 and initialize all the values to zero using the multiplication operator.
- Store it in another variable.
- Take another variable say ‘deciml_num‘ and initialize its value with 0.
- Take another variable say ‘tempry‘ and initialize its value with 0.
- Loop till the given octal number is not equal to zero using the while loop.
- Inside the loop, calculate the value of the given octal number modulus 10 and store it in another variable ‘a’.
- Multiply ‘a’ with the 8 raised to the power tempry using the pow() function and store it in another variable ‘b’.
- Add ‘b’ with the deciml_num and store it in the same variable deciml_num.
- Increment the value of tempry by 1 and store it in the same variable tempry.
- Divide the given octal number by 10 and store it in the same variable gvn_octl_num.
- Loop till the decimal number is not equal to zero using the while loop.
- Calculate the value of deciml_num modulus 16 to get the remainder and store it in a variable.
- Check if the above remainder value is less than 10 using the if conditional statement.
- If the statement is true, then get the character with the ASCII value remainder+48 using the if conditional statement and store it in a variable
- Initialize the hexadecimal list at the index ‘k’ with the above-calculated character.
- Increment the value of k by 1 and store it in the same variable k.
- Else if the statement is false, get the character with the ASCII value remainder+55.
- Store it in another variable.
- Initialize the hexadecimal list at the index ‘k’ with the above-calculated character.
- Increment the value of k by 1 and store it in the same variable k.
- Divide the decimal number by 16 and store it in the same variable deciml_num.
- Loop in decreasing order from k-1 to 0 with the stepsize of -1 using the for loop.
- Print the element present at the iterator of the hexadecimal list to get the hexadecimal value of the given octal number.
- The Exit of the Program.
Below is the implementation:
# Give the octal number as static input and store it in a variable.
gvn_octl_num = 24
# Take a variable say 'k' and initialize its value with 0.
k = 0
# Take a list of length 50 and initialize all the values to zero using the multiplication
# operator.
# Store it in another variable.
Hexa_deciml = ['0']*50
# Take another variable say 'deciml_num' and initialize its value with 0.
deciml_num = 0
# Take another variable say 'tempry' and initialize its value with 0.
tempry = 0
print(
"The Hexadecimal value of the given octal number {", gvn_octl_num, "} is: ")
# Loop till the given octal number is not equal to zero using the while loop.
while gvn_octl_num != 0:
# Inside the loop, calculate the value of the given octal number modulus 10 and store
# it in another variable 'a'.
a = (gvn_octl_num % 10)
# Multiply 'a' with the 8 raised to the power tempry using the pow() function and store
# it in another variable 'b'.
b = pow(8, tempry)*a
# Add 'b' with the deciml_num and store it in the same variable deciml_num.
deciml_num = deciml_num+b
# Increment the value of tempry by 1 and store it in the same variable tempry.
tempry += 1
# Divide the given octal number by 10 and store it in the same variable gvn_octl_num.
gvn_octl_num = gvn_octl_num // 10
# Loop till the decimal number is not equal to zero using the while loop.
while deciml_num != 0:
# Calculate the value of deciml_num modulus 16 to get the remainder and store it in a
# variable.
remindr = deciml_num % 16
# Check if the above remainder value is less than 10 using the if conditional statement.
if remindr < 10:
# If the statement is true, then get the character with the ASCII value remainder+48
# using the if conditional statement and store it in a variable
chrvalue = chr(remindr+48)
# Initialize the hexadecimal list at the index 'k' with the above-calculated character.
Hexa_deciml[k] = chrvalue
# Increment the value of k by 1 and store it in the same variable k.
k += 1
else:
# Else if the statement is false, get the character with the ASCII value remainder+55.
# Store it in another variable.
chrvalue = chr(remindr+55)
# Initialize the hexadecimal list at the index 'k' with the above-calculated character.
Hexa_deciml[k] = chrvalue
# Increment the value of k by 1 and store it in the same variable k.
k += 1
# Divide the decimal number by 16 and store it in the same variable deciml_num.
deciml_num //= 16
# Loop in decreasing order from k-1 to 0 with the stepsize of -1 using the for loop.
for itr in range(k-1, -1, -1):
# Print the element present at the iterator of the hexadecimal list to get the
# hexadecimal value of the given octal number.
print(Hexa_deciml[itr], end='')
Output:
The Hexadecimal value of the given octal number { 24 } is:
14Method #2: Using While loop (User Input)
Approach:
- Give the octal number as user input using the int(input()) function input and store it in a variable.
- Take a variable say ‘k‘ and initialize its value with 0.
- Take a list of length 50 and initialize all the values to zero using the multiplication operator.
- Store it in another variable.
- Take another variable say ‘deciml_num‘ and initialize its value with 0.
- Take another variable say ‘tempry‘ and initialize its value with 0.
- Loop till the given octal number is not equal to zero using the while loop.
- Inside the loop, calculate the value of the given octal number modulus 10 and store it in another variable ‘a’.
- Multiply ‘a’ with the 8 raised to the power tempry using the pow() function and store it in another variable ‘b’.
- Add ‘b’ with the deciml_num and store it in the same variable deciml_num.
- Increment the value of tempry by 1 and store it in the same variable tempry.
- Divide the given octal number by 10 and store it in the same variable gvn_octl_num.
- Loop till the decimal number is not equal to zero using the while loop.
- Calculate the value of deciml_num modulus 16 to get the remainder and store it in a variable.
- Check if the above remainder value is less than 10 using the if conditional statement.
- If the statement is true, then get the character with the ASCII value remainder+48 using the if conditional statement and store it in a variable
- Initialize the hexadecimal list at the index ‘k’ with the above-calculated character.
- Increment the value of k by 1 and store it in the same variable k.
- Else if the statement is false, get the character with the ASCII value remainder+55.
- Store it in another variable.
- Initialize the hexadecimal list at the index ‘k’ with the above-calculated character.
- Increment the value of k by 1 and store it in the same variable k.
- Divide the decimal number by 16 and store it in the same variable deciml_num.
- Loop in decreasing order from k-1 to 0 with the stepsize of -1 using the for loop.
- Print the element present at the iterator of the hexadecimal list to get the hexadecimal value of the given octal number.
- The Exit of the Program.
Below is the implementation:
# Give the octal number as user input using the int(input()) function input and
# store it in a variable.
gvn_octl_num = int(input("Enter some random number = "))
# Take a variable say 'k' and initialize its value with 0.
k = 0
# Take a list of length 50 and initialize all the values to zero using the multiplication
# operator.
# Store it in another variable.
Hexa_deciml = ['0']*50
# Take another variable say 'deciml_num' and initialize its value with 0.
deciml_num = 0
# Take another variable say 'tempry' and initialize its value with 0.
tempry = 0
print(
"The Hexadecimal value of the given octal number {", gvn_octl_num, "} is: ")
# Loop till the given octal number is not equal to zero using the while loop.
while gvn_octl_num != 0:
# Inside the loop, calculate the value of the given octal number modulus 10 and store
# it in another variable 'a'.
a = (gvn_octl_num % 10)
# Multiply 'a' with the 8 raised to the power tempry using the pow() function and store
# it in another variable 'b'.
b = pow(8, tempry)*a
# Add 'b' with the deciml_num and store it in the same variable deciml_num.
deciml_num = deciml_num+b
# Increment the value of tempry by 1 and store it in the same variable tempry.
tempry += 1
# Divide the given octal number by 10 and store it in the same variable gvn_octl_num.
gvn_octl_num = gvn_octl_num // 10
# Loop till the decimal number is not equal to zero using the while loop.
while deciml_num != 0:
# Calculate the value of deciml_num modulus 16 to get the remainder and store it in a
# variable.
remindr = deciml_num % 16
# Check if the above remainder value is less than 10 using the if conditional statement.
if remindr < 10:
# If the statement is true, then get the character with the ASCII value remainder+48
# using the if conditional statement and store it in a variable
chrvalue = chr(remindr+48)
# Initialize the hexadecimal list at the index 'k' with the above-calculated character.
Hexa_deciml[k] = chrvalue
# Increment the value of k by 1 and store it in the same variable k.
k += 1
else:
# Else if the statement is false, get the character with the ASCII value remainder+55.
# Store it in another variable.
chrvalue = chr(remindr+55)
# Initialize the hexadecimal list at the index 'k' with the above-calculated character.
Hexa_deciml[k] = chrvalue
# Increment the value of k by 1 and store it in the same variable k.
k += 1
# Divide the decimal number by 16 and store it in the same variable deciml_num.
deciml_num //= 16
# Loop in decreasing order from k-1 to 0 with the stepsize of -1 using the for loop.
for itr in range(k-1, -1, -1):
# Print the element present at the iterator of the hexadecimal list to get the
# hexadecimal value of the given octal number.
print(Hexa_deciml[itr], end='')
Output:
Enter some random number = 72
The Hexadecimal value of the given octal number { 72 } is:
3AExplore more instances related to python concepts from Python Programming Examples Guide and get promoted from beginner to professional programmer level in Python Programming Language.
