In this example, you will learn to convert octal to decimal numbers. Here we write a C program that takes an octal number as input and converts it into an equivalent decimal number. Converting an octal number to decimal means converting the number with base value 10 to base value 8.
The base value of a number system determines the number of digits used to represent a numeric value. For example, a decimal number system uses 10 digits 0-9 to represent any numeric value.
Given an octal number n, you need to convert to a decimal number.
Examples:
Input : n = 30 Output : 24 24 is decimal equivalent of octal 30. Input : n = 11 Output : 9
Logic to Convert Octal Number to Decimal:
Step-1: Arrange the octal number with the power of 8 and start from the right-hand side. For example,
1278 => 1 × 82 + 2 × 81 + 7 × 80
Step-2: Evaluate the power of 8 values for each octal number and multiply it with the respective numbers.
1278 => 1 × 64 + 2 × 8 + 7 × 1
1278 => 64 + 16 + 7
Step-3: Now in the last add all values to get the respective decimal number.
1278 => 8710
C Program to Convert Octal Number to Decimal
Method 1: Using math.h library function
#include <stdio.h> #include <math.h> int OctalToDecimal(int octNum) { int decNum = 0, i = 0; while(octNum != 0) { decNum += (octNum%10) * pow(8,i); ++i; octNum/=10; } return decNum; } int main() { int octNum; printf("Enter an octal number: "); scanf("%d", &octNum); //Function Call to convert octal to decimal const int decNum = OctalToDecimal(octNum); printf("%d = %d in decimal\n", octNum, decNum); return 0; }
Output:
Method 2:
Extract the digits of a given octal number, beginning with the rightmost digit, and store them in a variable called last_digit. Now multiply the last_digit by the appropriate base value (Power of 8) and add the result to the variable decNum. Repeat the process till the given octal number becomes zero.
#include <stdio.h> int octalToDecimal(int octNum) { int decNum = 0; // Initializing baseValue value to 1, i.e 8^0 int baseValue = 1; int temp = octNum; while (temp) { // Extracting last digit int last_digit = temp % 10; // Multiplying last digit with appropriate // base value and adding it to decNum decNum += last_digit * baseValue; baseValue = baseValue * 8; temp = temp / 10; } return decNum; } int main() { int octNum; printf("Enter an octal number: "); scanf("%d", &octNum); //Function Call to convert octal to decimal const int decNum = octalToDecimal(octNum); printf("%d = %d in decimal", octNum, decNum); return 0; }
Recommended Post:
- C Programming Courses And Tutorials.
- CPP Programming Courses And Tutorials.
- Python Courses and Tutorials.
- C program to decimal to octal number
- Convert decimal to binary number
- C program to decimal to binary using recursion and without using power operator
- Program to decimal to binary number using recursion
- C program to convert decimal to binary without using arithmetic operators.