- Python Basic Programs
- Python Program Examples
- Python Print Hello World
- Python Get Input from User
- Python Add Two Numbers
- Add Subtract Multiply Divide
- Python Check Even or Odd
- Python Check Prime or Not
- Python Check Alphabet or Not
- Python Check Vowel or Not
- Python Check Leap Year or Not
- Check Reverse equal Original
- Check Positive Negative Zero
- Python Check Armstrong or Not
- Python Check Palindrome or Not
- Python Check Perfect Number
- Python Find Reverse of Number
- Python Count Digits in Number
- Python Add Digits of Number
- Sum of First and Last Digits
- Python Product of Mid Digits
- Sum of Squares of Digits
- Interchange Digits of Number
- Python Sum of n Numbers
- Python Print ASCII Values
- Python Swap Two Numbers
- Python Swap Two Variables
- Python Fahrenheit to Celsius
- Python Celsius to Fahrenheit
- Python Display Calendar
- Python Days into Years, Weeks
- Find Largest of Two Number
- Find Largest of Three Number
- Python Print Fibonacci Series
- Generate Armstrong Numbers
- Python Make Simple Calculator
- Python Add Binary Numbers
- Binary Number Multiplication
- Python Mathematical Programs
- Find Sum of Natural Numbers
- Find Average of n Numbers
- Python Print Multiplication Table
- Print Table using Recursion
- Python Find Average Percentage
- Python Find Grade of Student
- Find Square Root of Number
- Python Print Prime Numbers
- Find Numbers Divisible by
- Python Find Factors of Number
- Python Find Factorial of a Number
- Python Find HCF & LCM
- Python Kilometres to Miles
- Python Find Area of Square
- Python Find Area of Rectangle
- Python Find Area of Triangle
- Python Find Area of Circle
- Python Find Perimeter of Square
- Find Perimeter of Rectangle
- Python Find Perimeter of Triangle
- Find Circumference of Circle
- Python Simple Interest
- Python Solve Quadratic Equation
- Python Different Set of Operations
- Python Display Powers of 2
- Python Find nCr & nPr
- Python Pattern Programs
- Python Print Pattern Programs
- Python Print Diamond Pattern
- Python Print Floyd's Triangle
- Python Print Pascal's Triangle
- Python List Programs
- Python Count Even/Odd in List
- Python Positive/Negative in List
- Python Even Numbers in List
- Python Odd Numbers in List
- Python Sum of Elements in List
- Sum of Odd/Even Numbers
- Python Element at Even Position
- Python Element at Odd Position
- Python Search Element in List
- Python Largest Number in List
- Python Smallest Number in List
- Python Second Largest in List
- Python Second Smallest in List
- Python Insert Element in List
- Python Delete Element from List
- Python Multiply Numbers in List
- Swap Two Elements in List
- Python 1D Array Program
- Python Linear Search
- Python Binary Search
- Python Insertion Sort
- Python Bubble Sort
- Python Selection Sort
- Remove Duplicates from List
- Python Reverse a List
- Python Merge Two List
- Python Copy a List
- Python Conversion Programs
- Python Decimal to Binary
- Python Decimal to Octal
- Python Decimal to Hexadecimal
- Python Binary to Decimal
- Python Binary to Octal
- Python Binary to Hexadecimal
- Python Octal to Decimal
- Python Octal to Binary
- Python Octal to Hexadecimal
- Python Hexadecimal to Decimal
- Python Hexadecimal to Binary
- Python Hexadecimal to Octal
- Python Matrix Programs
- Python Add Two Matrices
- Python Subtract Two Matrices
- Python Transpose Matrix
- Python Multiply Matrices
- Python String Programs
- Python Print String
- Python Find Length of String
- Python Compare Two Strings
- Python Copy String
- Python Concatenate String
- Python Reverse a String
- Python Swap Two Strings
- Python Uppercase to Lowercase
- Python Lowercase to Uppercase
- Python Check Substring in String
- Python Count Character in String
- Count Repeated Characters
- Python Count Word in Sentence
- Python Count Each Vowels
- Python Capitalize Character
- Python Capitalize Word in String
- Python Smallest/Largest Word
- Remove Spaces from String
- Remove Duplicate Character
- Remove Vowels from String
- Remove Punctuation from String
- Python Remove Word in String
- Python Remove Duplicate Words
- WhiteSpace to Hyphens
- Replace Vowels with Character
- Replace Character in String
- Python Sort String in Alphabetical
- Sort Word in Alphabetical Order
- Extract Number from String
- Python Check Anagram Strings
- Python File Programs
- Python Read a File
- Python Write to File
- Python Append Text to File
- Python Copy Files
- Python Merge Two Files
- Python Counts Characters in File
- Python Count Words in File
- Python File Content in Reverse
- Python Lines Contains String
- Python Delete Line from File
- Python Capitalize Word in File
- Python Replace Text in File
- Replace Specific Line in File
- Python Find Size of File
- Python List Files in Directory
- Python Delete Files
- Python Misc Programs
- Python Reverse a Tuple
- Python Merge Two Dictionary
- Python bytes to String
- Python bytearray to String
- Generate Random Numbers
- Python Print Address of Variable
- Python Print Date and Time
- Python Get IP Address
- Python Shutdown/Restart PC
- Python Tutorial
- Python Tutorial

# Python Program to Convert Binary to Octal

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:

- Binary to Octal with User-defined Code
- Binary to Octal using
**int()**and**oct()**Methods - Shortest Python Code for Binary to Octal Conversion

**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.

## Binary to Octal with User-defined Code

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:

`octalnum.insert(i, octaldigit)`

states that the value of **octaldigit** gets initialized to **octalnum[i]**.

The dry run of above program with user input **11101** goes like:

- Initial values,
**binarynum=11101**(entered by user),**octaldigit=0**,**i=0**,**mul=1**,**chk=1** - The condition (of
*while loop*)**binarynum!=0**or**11101!=0**evaluates to be true, therefore program flow goes inside the loop - Inside the loop, the first statement, that is

`rem = binarynum % 10`

gets executed **binarynum%10**or**11101%10**or**1**(last digit of 11101) gets initialized to**rem**. So**rem=1****octaldigit + (rem*mul)**or**0 + (1*1)**or**1**gets initialized to**octaldigit**. So**octaldigit=1**- Now the condition (of
*if*block)**chk%3==0**or**1%3==0**evaluates to be false, therefore program does not goes to its body, rather it goes to its**else**'s counterpart and**mul*2**or**1*2**or**2**gets initialized to**mul**. So**mul=2** **chk+1**or**1+1**or**2**gets initialized to**chk**. So**chk=2****int(binarynum/10)**or**int(11101/10)**or**1110**gets initialized to**binarynum**. So**binarynum=1110**- The condition of
**while loop**again gets evaluated with new value of**binarynum** - That is, the condition
**binarynum!=0**or**1110!=0**evaluates to be true, therefore program flow again goes inside the loop. This process continues until the condition evaluates to be false - In this way, the equivalent octal value of value stored in
**binarynum**gets stored in**octalnum**list after exiting from the loop

The following condition:

`if chk%3==0:`

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()**

#### Modified Version of Previous Program

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.

## Binary to Octal using int() and oct()

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:

### Shortest Python Code for Binary to Octal Conversion

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**:

#### Same Program in Other Languages

« Previous Program Next Program »