# Kotlin Program to Convert Large Binary Number to Decimal

###### Greetings!
We have recently published 100+ articles on android tutorials with kotlin and java. If you need, you may visit Android Tutorial for beginners page. You can also check Kotlin Tutorial for beginners. Also, if you are interested in content writing, you can mail us at tutorialwing@gmail.com.

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

```Input:
110000000000000111111

Output:
Equivalent decimal: 1572927
```

## 1. Program to Convert Binary to Decimal

###### Pseudo Algorithm
• Key Idea is to use string for input instead of int type, and Long for Output just to increase the range of output.
• Initialise a variable decimalVal, that stores equivalent decimal value, with 0
• Extract each character from the string.
• While extracting, check if character is 1. If yes, multiply the extracted character with proper base (power of 2).
• For example, if binary number is 110, decimalVal = 1 * (2^2) + 1 * (2^1) = 6

Sourcecode –

```fun main() {

println("Enter n:")

val countDigit = binaryN!!.length -1

var decimalVal: Long = 0

var base = 1
for(pos in countDigit downTo 0) {
val curChar = binaryN[pos]
if(curChar == '1') {
decimalVal += base
}
base *= 2

if(!(curChar == '1' || curChar == '0')) {
decimalVal = -1
println("\$binaryN is not binary number.")
break
}
}

if(decimalVal != (-1).toLong()) {
println("Equivalent decimal: \$decimalVal")
}
}
```

When you run the program, output will be –

```Enter n:
110000000000000000000000
Equivalent decimal: 12582912
```
###### Explanation:
• Run a loop from end to first character of the string.
• At each position, check if character at that position is 1. If yes, add base in decimalVal.
• Note that base value is calculated for each position. If you observe carefully, base is actually power of 2 for each position in the string.
• Finally, at postion = 0, we get final decimal value.
• Note that we also check, at every position, if character is 0 or 1. It is neither 0 nor 1, it means given string is not binary. So, print error message.

Thus, we went through Kotlin Program to Convert Large Binary Number to Decimal Number