In this article, we've created some programs in Python, to convert any binary number entered by user at run-time to its equivalent octal value. Here are the list of programs:
Note - Before starting these programs, if you're not aware about steps used for the conversion, then refer to Binary to Octal Conversion Methods, Steps, Formula to get every required things.
To convert binary to octal number in Python, you have to ask from user to enter a number in binary number system to convert that number into octal number system as shown in the program given below.
The question is, write a Python program to convert binary to octal using while loop. Here is its answer:
print("Enter the Binary Number: ") binarynum = int(input()) octaldigit = 0 octalnum =  i = 0 mul = 1 chk = 1 while binarynum!=0: rem = binarynum % 10 octaldigit = octaldigit + (rem * mul) if chk%3==0: octalnum.insert(i, octaldigit) mul = 1 octaldigit = 0 chk = 1 i = i+1 else: mul = mul*2 chk = chk+1 binarynum = int(binarynum / 10) if chk!=1: octalnum.insert(i, octaldigit) print("\nEquivalent Octal Value = ", end="") while i>=0: print(str(octalnum[i]), end="") i = i-1 print()
Here is its initial output:
Now supply any binary number as input say 11101 and press
ENTER key to convert it into
its equivalent octal value, then print the octal value on output as shown in the snapshot given below:
The insert() method is used to insert an element to the list. That is, the following statement:
states that the value of octaldigit gets initialized to octalnum[i].
The dry run of above program with user input 11101 goes like:
rem = binarynum % 10
The following condition:
is applied to check for three-three pair of binary digits. And the following block of code:
if chk!=1: octalnum.insert(i, octaldigit)
is used to insert the value of octaldigit to octalnum[i], only if the value of chk is not equal to 1. The value of chk does not equal to 1 after exiting from the while loop indicates that the program flow does not goes inside the if's body before exiting from the loop.
Now print the value of octalnum list one by one starting from its last index. The end= is used to skip printing of an automatic newline using print()
This is the modified version of previous program. This program uses string instead of list, which is a better way in Python to convert any binary number to its equivalent octal value.
print("Enter the Binary Number: ", end="") bnum = int(input()) odig = 0 mul = chk = 1 onum = "" while bnum!=0: rem = bnum % 10 odig = odig + (rem * mul) if chk%3==0: onum = onum + str(odig) mul = chk = 1 odig = 0 else: mul = mul*2 chk = chk+1 bnum = int(bnum / 10) if chk!=1: onum = onum + str(odig) print("\nEquivalent Octal Value = ", onum[::-1])
Here is its sample run with user input, 11000111011 as binary number:
Note - The str() method is used to convert any type of value to a string type value.
This program uses int() and oct() methods to convert binary to octal. Using input() to receive any input from user, treats the input as a string type value by default.
Therefore using int() with 2 as its second argument, converts the string to an integer type value with base two, that is, the input gets converted into a binary number. And oct() converts the value of onum to its equivalent octal value.
print("Enter a Binary Number: ", end="") bnum = input() onum = int(bnum, 2) onum = oct(onum) print("\nEquivalent Octal Value = ", onum)
Here is its sample run with user input, 10111:
Note - To print only 27, that is, if you want to skip first two characters from octal number, then replace the following statement:
print("\nEquivalent Octal Value = ", onum)
with the statement given below:
print("\nEquivalent Octal Value = ", onum[2:])
Now the output with same user input looks like:
This is the shortest Python code to convert binary to octal. [2:] is used to print elements of bnum starting from its second index.
bnum = input() print(oct(int(bnum, 2))[2:])
Here is its sample run with user input, 1100110:
© Copyright 2021. All Rights Reserved.