From 6f20588fdb7d9e7d19fbc41e86430a18987f58d1 Mon Sep 17 00:00:00 2001 From: LethargicLeprechaun Date: Sat, 2 May 2020 17:52:26 +0100 Subject: [PATCH] Added octal to decimal --- conversions/octal_to_decimal.c | 38 ++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 conversions/octal_to_decimal.c diff --git a/conversions/octal_to_decimal.c b/conversions/octal_to_decimal.c new file mode 100644 index 00000000..f26f7141 --- /dev/null +++ b/conversions/octal_to_decimal.c @@ -0,0 +1,38 @@ +#include +#include + +// Converts octal number to decimal +int convertValue(int num, int i) { + return num * pow(8, i); +} + +long long toDecimal(int octal_value) { + + int decimal_value = 0, i = 0; + + while (octal_value) { + + // Extracts right-most digit and then multiplies by 8^i + decimal_value += convertValue(octal_value % 10, i++); + + // Shift right in base 10 + octal_value /= 10; + } + + return decimal_value; +} + +int main() { + + printf("Enter octal value: "); + + int octal_value; + + scanf("%d", &octal_value); + + long long result = toDecimal(octal_value); + + printf("%d in decimal is %lld\n", octal_value, result); + + return 0; +}