# Kotlin Program to Convert Octal Number to Decimal

Given an octal number as input. Now, write a Kotlin program to convert Octal number to Decimal Number.

```Input:
20

Output:
16
```
```Input:
324

Output:
212
```
```Input:
1000

Output:
512
```

## 1. Program to Convert Octal to Decimal

###### Pseudo Algorithm
• Initialise a variable decimalNum, that stores equivalent decimal value, with 0
• Extract each digit from the octal number.
• While extracting, multiply the extracted digit with proper base (power of 8).
• For example, if octal number is 110, decimalNum = 1 * (8^2) + 1 * (8^1) + 0 * (8^0) = 72

Sourcecode –

```import java.util.*

fun main() {
val read = Scanner(System.`in`)

println("Enter n:")
val octalN = read.nextLong()

var decimalNum: Long = 0
if(checkOctalNumber(octalN)) {
var n = octalN

var base = 1
while (n != 0.toLong()) {
val lastDigit = n % 10
n /= 10
decimalNum += lastDigit * base
base *= 8
}
println("Equivalent Decimal : \$decimalNum")
} else {
println("\$octalN is not a octal number")
}
}

private fun checkOctalNumber(octalNum: Long): Boolean {
var isOctal = true

var n = octalNum
while (n != 0.toLong()) {
val lastDigit = n % 10
if(!((lastDigit >= 0.toLong()) || (lastDigit <= 7.toLong()))) {
isOctal = false
break
}
n /= 10
}
return isOctal
}
```

When you run the program, output will be –

```Enter n:
2432
Equivalent Decimal : 1306
```
###### Explanation:

Here, we have created an object of Scanner. Scanner takes an argument which says where to take input from.
System.`in` means take input from standard input – Keyboard.

read.nextLong() means read anything entered by user before space or line break from standard input – Keyboard.

We stored value entered by user in variable octalN.

At first, we checked if entered value is octal or not.
If NO, we print a message ” number is not octal number”.

• We use checkOctalNumber function to check if number is octal or not. If any digit in number is neither 0 nor 1, then, it is not octal number.

If Yes, we start converting those number into decimal –

• variable base contains power of 8 to the position at which current last digit we have in lastDigit
• Decimal value is sum of lastDigit * (power of 8 to the position at which current lastDigit is at)
• For example,
octalN = 110

decimalN = 1 * (8 ^ 2) + 1 * (8^1) + 0 * (8 ^ 0) = 72

Thus, we went through Kotlin Program to Convert Octal Number to Decimal Number.