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 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.