Programming in C and Java to convert from octal to decimal

By | October 3, 2021 Here in this article, we have provided Java and C source codes, that ask the user to enter a number in decimal and convert it to the Decimal number system.

Example:

Input: Octal: 011
Output: Decimal: 9

Input: Octal: 20
Output: Decimal: 16

Input : Octal: 40
Output: Decimal: 32

Octal Number System:

Octal number system has a base of 8 and it represents its number using 0 to 7.

Decimal Number System:

In decimal number system we have 10 digits 0 to 9 to represent a number.

Logic: Octal to Decimal:

There is an easy logic to convert an Octal number to Decimal.

• Take an octal number which must be a combination of numbers including [0-7].
let's take an octal number
75

• Extract the number from left to right digit by digit.
Extract 75 from left to right.
7 and 5.

• Multiply the extracted numbers with 8 to the power of number unit.
7 is at 1st position so it would be multiplied with 8^1
5 is at 0 position so it would be multiplied with 8^0
7 * (81)=56  and 5 * (80)=5
56 + 5 =61

Another example:

Octal                       134
/  |  \
/   |   \
1    3    4
/      |     \
/       |      \
1*(82) + 3*(81) + 4*(80)
\       |      /
\      |     /
64 + 24  + 4
\    |   /
\   |  /
Decimal                     92

Octal to Decimal:

Java:

import java.io.*;
import java.util.Scanner;
import java.lang.Math;

class Tech {
//Conversion method
static int oct_to_dec(int n)
{
int dec_num = 0;

// The unit value is 0 for the last digit
int unit = 0;

int temp = n;
int digit;

while (temp > 0) {

// Extract the Octal number from last digit
digit = temp % 10;
temp = temp / 10;

//multiply the digit with 8 to the power base unit
dec_num += digit * Math.pow(8, unit);
unit = unit +1;
}
return dec_num;
}

public static void main(String[] args)
{
Scanner sc= new Scanner(System.in);
System.out.print("Octal: ");
int num= sc.nextInt();

System.out.println("Decimal: "+oct_to_dec(num));
}
}

Output:

Octal: 1575
Decimal: 893

C:

using namespace std;

#include<stdio.h>
#include<math.h>
int oct_to_dec(int n)
{

int dec_num = 0;

// The unit value is 0 for the last digit
int unit = 0;

int temp = n;
int digit;
while (temp > 0) {
// Extract the Octal number from last digit

digit = temp % 10;
temp = temp / 10;

//multiply the digit with 8 to the power base unit
dec_num += digit * pow(8, unit);
unit = unit +1;
}
return dec_num;
}

int main()
{
int n;
printf("Octal:");
scanf("%d", &n);
printf("Decimal:%d ",oct_to_dec(n));
return 0;
}

Output:

Octal:2345
Decimal:1253

Python:

def oct_to_dec(n):
dec_num =0
unit =0
temp =n

while(temp>0):
digit = temp%10
temp =temp//10
dec_num+=digit*pow(8,unit)
unit+=1
return dec_num

n= int(input("Octal: "))
print("Decimal:", oct_to_dec(n))

Output:

Octal: 23456
Decimal: 10030 