- C++ Programming Examples
- C++ Programming Examples
- C++ Hello World
- C++ Get Input
- C++ Print Integer
- C++ Add Two Numbers
- C++ Add Sub Mul Div
- C++ Add Digits
- C++ Find Average Perc
- C++ Find Arithmetic Mean
- C++ Sum of n Natural Numbers
- C++ Sum of n Numbers
- C++ Area Perimeter of Square
- C++ Area Perimeter of Rectangle
- C++ Area Perimeter of Triangle
- C++ Area Circum of Circle
- C++ Find Simple Interest
- C++ Fahrenheit to Celsius
- C++ Celsius to Fahrenheit
- C++ Print Prime Numbers
- C++ Reverse a Number
- C++ Swap Two Numbers
- C++ Print Multiplication Table
- C++ Find Factorial of Number
- C++ Find Factors of Number
- C++ Find HCF & LCM
- C++ Make Calculator
- C++ Count Digits in Number
- C++ Sum of First & Last Digit
- C++ Product of Digits of Number
- C++ Sum of Squares of Digits
- C++ Interchange Digits of Number
- C++ if else Programs
- C++ Check Even or Odd
- C++ Check Prime or Not
- C++ Check Alphabet or Not
- C++ Check Vowel or Not
- C++ Check Leap Year or Not
- Check Reverse equal Original
- C++ Check Perfect Number
- C++ Check Palindrome or Not
- C++ Check Armstrong or Not
- C++ Divisibility Test
- C++ Find Wage of Labor
- C++ Find Discounted Price
- C++ Find Shipping Charge
- C++ Find Telephone Bills
- C++ Calculate Student Grade
- C++ Largest of Two Numbers
- C++ Largest of Three Numbers
- C++ Number Conversion
- C++ Decimal to Binary
- C++ Decimal to Octal
- C++ Decimal to Hexadecimal
- C++ Binary to Decimal
- C++ Binary to Octal
- C++ Binary to Hexadecimal
- C++ Octal to Decimal
- C++ Octal to Binary
- C++ Octal to Hexadecimal
- C++ Hexadecimal to Decimal
- C++ Hexadecimal to Binary
- C++ Hexadecimal to Octal
- C++ Pattern Programs
- C++ Pattern Programs
- C++ Print Diamond Pattern
- C++ Print Floyd's Triangle
- C++ Print Pascal's Triangle
- C++ Array Programs
- C++ 1D Array Program
- C++ Linear Search
- C++ Binary Search
- Find Largest Element in Array
- Find Smallest Element in Array
- Find Second Largest Element
- Find Second Smallest Element
- C++ Sum of All Elements
- C++ Multiply All Elements
- C++ Element on Even Position
- C++ Element on Odd Position
- C++ Print Even Numbers in Array
- C++ Print Odd Numbers in Array
- C++ Count Even/Odd Numbers
- C++ Sum of Even/Odd Numbers
- C++ Count Positive Negative Zero
- C++ Reverse an Array
- C++ Insert Element in Array
- C++ Delete Element from Array
- C++ Merge two Arrays
- C++ Bubble Sort
- C++ Selection Sort
- C++ Insertion Sort
- C++ Common Elements
- C++ 2D Array Programs
- C++ Add Two Matrices
- C++ Subtract Two Matrices
- C++ Transpose Matrix
- C++ Multiply Two Matrices
- C++ 3D Array Programs
- C++ String Programs
- C++ Print String
- C++ Find Length of String
- C++ Compare Two Strings
- C++ Copy String
- C++ Concatenate String
- C++ Reverse a String
- C++ Delete Vowels from String
- C++ Delete Word from String
- C++ Count Character in String
- C++ Count Word in String
- C++ Frequency of Word
- C++ Remove Spaces from String
- C++ Sort a String
- C++ Uppercase to Lowercase
- C++ Lowercase to Uppercase
- C++ Swap Two Strings
- C++ Check Anagram or Not
- C++ Capitalize All Words in String
- C++ Capitalize Specific Character
- C++ Get Numbers from String
- C++ File Programs
- C++ Read a File
- C++ Write Content to File
- C++ Append Data in File
- C++ Read & Display File
- C++ Copy a File
- C++ Merge Two Files
- Count Characters, Words in File
- C++ Capitalize All Words in File
- C++ List Files in Directory
- C++ Delete a File
- C++ Encrypt & Decrypt a File
- C++ Misc Programs
- C++ Print ASCII Value
- C++ Add Binary Numbers
- C++ Generate Random Numbers
- C++ Print Smiling Face
- C++ Days into Years, Months
- Add Two Numbers using Pointer
- C++ Print Fibonacci Series
- Generate Armstrong Numbers
- C++ Find nCr and nPr
- C++ Get IP Address
- C++ Print Date/Time
- C++ Shutdown, Restart Computer
- C++ Programming Tutorial
- C++ Tutorial
- C++ Programming Test
- C++ Programming Test
- Give Online Test
- All Test List
C++ Program to Convert Binary to Octal
In this article, you will learn and get code on binary to octal conversion in C++. The program is created with and without using function.
But before starting the program, if you are not aware about steps and formula used for the conversion, then you can refer to binary to octal. There you will get every required things.
Binary to Octal in C++
To convert binary number to octal in C++ programming, you have to ask from user to enter any number in binary. And then convert it into its equivalent octal value as shown in the program given below.
The question is, write a program in C++ that receives any binary number and print its equivalent octal value. Here is its answer:
#include<iostream> using namespace std; int main() { int binaryNum, octalDigit=0, octalNum[20]; int i=0, mul=1, chk=1, rem; cout<<"Enter the Binary Number: "; cin>>binaryNum; while(binaryNum!=0) { rem = binaryNum%10; octalDigit = octalDigit + (rem*mul); if(chk%3==0) { octalNum[i] = octalDigit; mul = 1; octalDigit = 0; chk = 1; i++; } else { mul = mul*2; chk++; } binaryNum = binaryNum/10; } if(chk!=1) octalNum[i] = octalDigit; cout<<"\nEquivalent Octal Value: "; for(i=i; i>=0; i--) cout<<octalNum[i]; cout<<endl; return 0; }
This program was build and run under Code::Blocks IDE. Here is its sample run:
Now supply the binary number input say 1101110 and press ENTER
key to print its equivalent
value in octal, as shown in the snapshot given below:
Here is another sample run with user input as 11010010:
The dry run (of above program) with user input as 1101110 goes like:
- Initial values, i=0, mul=1, chk=1, octalDigit=0
- When user enters binary number say 1101110, then it gets initialized to binaryNum. Therefore binaryNum=1101110
- Now because the condition (of while loop) binaryNum!=0 or 1101110!=0 evaluates to be true, therefore program flow goes inside the loop
- Inside the loop, all the statements gets executed one by one, starting from the very first one
- That is, binaryNum%10 or 1101110%10 or 0 gets initialized to rem. So rem=0
- octalDigit + (rem*mul) or 0 + (0*1) or 0 gets initialized to octalDigit. So octalDigit=0
- Now the condition of if statement, that is chk%3==0 or 1%3==0 or 1==0 evaluates to be false, therefore program does not goes inside the if's body, rather it goes to its else's body
- Inside the else's body, mul*2 or 1*2 or 2 gets initialized to mul. Now mul=2
- And the value of chk gets incremented. Now chk=2
- Finally the last statement of while loop gets executed, that is, binaryNum/10 or 1101110/10 or 110111 gets initialized to binaryNum. Now binaryNum=110111
- Now the program flow goes back and evaluates the condition of while loop again with new value of binaryNum.
- Second time also the condition evaluates to be true, therefore program flow again goes inside the loop.
- This process continues, until the condition of while loop evaluates to be false. That is, the value of binaryNum becomes equal to 0
- In this way, here are the values after each evaluation of while loop:
- rem=0, octalDigit=0, mul=2, chk=2, binaryNum=110111
- rem=1, octalDigit=2, mul=4, chk=3, binaryNum=11011
- rem=1, octalDigit=6, octalNum[0]=6, mul=1, octalDigit=0, chk=1, i=1, binaryNum=1101. At this evaluation, the condition of if also evaluates to be true
- rem=1, octalDigit=1, mul=2, chk=2, binaryNum=110
- rem=0, octalDigit=1, mul=4, chk=3, binaryNum=11
- rem=1, octalDigit=5, octalNum[1]=5, mul=1, octalDigit=0, chk=1, i=2, binaryNum=1. Again the condition of if evaluates to be true
- rem=1, octalDigit=1, mul=2, chk=2, binaryNum=0
- Because the value of binaryNum is 0 now, therefore the condition of while loop evaluates to be false, therefore the while loop evaluation gets ended
- Now the condition of if, that is chk!=1 gets evaluated. Because the condition chk!=1 or 2!=1 evaluates to be true, therefore octalDigit or 1 gets initialized to octalNum[2]
- Now using the for loop the value of octalNum[] gets printed starting from its last to 0th index.
- That is the value of octalNum[2] gets printed first. And then octalNum[1] and octalNum[0] gets printed. That equals or prints 156 as output
Using user-defined Function
Let's create another program that does the same job using a user-defined function BinaryToOctal(). This function receives binary number as its argument and converts it into its equivalent octal value.
#include<iostream> using namespace std; void BinaryToOctal(int); int i=0, octalNum[20]; int main() { int binaryNum; cout<<"Enter any Binary Number: "; cin>>binaryNum; BinaryToOctal(binaryNum); cout<<"\nEquivalent Octal Value: "; for(i=i; i>=0; i--) cout<<octalNum[i]; cout<<endl; return 0; } void BinaryToOctal(int binaryNum) { int octalDigit=0, mul=1, chk=1, rem; while(binaryNum!=0) { rem = binaryNum%10; octalDigit = octalDigit + (rem*mul); if(chk%3==0) { octalNum[i] = octalDigit; mul = 1; octalDigit = 0; chk = 1; i++; } else { mul = mul*2; chk++; } binaryNum = binaryNum/10; } if(chk!=1) octalNum[i] = octalDigit; }
It will produce the same output as of previous program. You can also convert binary to octal in an indirect way. That is, first binary to decimal and then decimal to octal.
Same Program in Other Languages
« Previous Program Next Program »