# Kotlin Program to Convert Binary Number to decimal number

Given a Binary Number as Input. Now, write a Kotlin Program to Convert Binary Number to equivalent decimal number.

```Input:
100

Output:
4
```
```Input:
110

Output:
6
```
```Input:
101

Output:
5
```

## 1. Program to Convert Binary to Decimal

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

Sourcecode –

```import java.util.*

fun main() {

println("Enter n:")

var decimalNum: Long = 0
if(checkBinary(binaryN)) {
var n = binaryN

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

private fun checkBinary(binaryNum: Long): Boolean {
var isBinary = true

var n = binaryNum
while (n != 0.toLong()) {
val lastDigit = n % 10
if(!((lastDigit == 0.toLong()) || (lastDigit == 1.toLong()))) {
isBinary = false
break
}
n /= 10
}
return isBinary
}
```

When you run the program, output will be –

```Enter n:
100010
Equivalent Decimal : 34
```
###### 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 binaryN.

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

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

If Yes, we start converting those number into decimal –

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

decimalN = 1 * (2 ^ 2) + 1 * (2^1) + 1 * (2 ^ 0) = 6

Thus, we went through Kotlin program to convert binary number to equivalent decimal number.