Binary to Octal Conversion

Definition & Explanation

Example:
Input:
Output:

Program Logic

Desc

C

Method 1 :

#include <stdio.h>
#include <math.h>

int main() {
    long long binary_num, octal_num = 0;
    int decimal_num = 0, i = 0;

    printf("Enter a binary number: ");
    scanf("%lld", &binary_num);

    while (binary_num != 0) {
        decimal_num += (binary_num % 10) * pow(2, i);
        ++i;
        binary_num /= 10;
    }

    i = 1;

    while (decimal_num != 0) {
        octal_num += (decimal_num % 8) * i;
        decimal_num /= 8;
        i *= 10;
    }

    printf("Binary number in octal is: %lld\n", octal_num);

    return 0;
}

Output :

C++

Method 1 :

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    long long binary_num, octal_num = 0;
    int decimal_num = 0, i = 0;

    cout << "Enter a binary number: ";
    cin >> binary_num;

    while (binary_num != 0) {
        decimal_num += (binary_num % 10) * pow(2, i);
        ++i;
        binary_num /= 10;
    }

    i = 1;

    while (decimal_num != 0) {
        octal_num += (decimal_num % 8) * i;
        decimal_num /= 8;
        i *= 10;
    }

    cout << "Binary number in octal is: " << octal_num << endl;

    return 0;
}

Output :

JAVA

Method 1 :

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        long binaryNum, octalNum = 0;
        int decimalNum = 0, i = 0;

        System.out.print("Enter a binary number: ");
        binaryNum = scanner.nextLong();

        while (binaryNum != 0) {
            decimalNum += (binaryNum % 10) * Math.pow(2, i);
            ++i;
            binaryNum /= 10;
        }

        i = 1;

        while (decimalNum != 0) {
            octalNum += (decimalNum % 8) * i;
            decimalNum /= 8;
            i *= 10;
        }

        System.out.println("Binary number in octal is: " + octalNum);
        scanner.close();
    }
}

Output :

Python

Method 1 :

binary_num = "101010"
decimal_num = int(binary_num, 2)
octal_num = oct(decimal_num)
octal_num = octal_num[2:]  # Remove '0o' prefix
print("Binary number", binary_num, "in octal is:", octal_num)

Output :

Binary number 101010 in octal is: 52