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() { val read = Scanner(System.`in`) println("Enter n:") val binaryN = read.nextLong() 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 = 110decimalN = 1 * (2 ^ 2) + 1 * (2^1) + 1 * (2 ^ 0) = 6

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