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 binaryN = readLine()

    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

Support Us

If you like Tutorialwing and would like to contribute, you can email an article on any educational topic at tutorialwing@gmail.com. We would love to publish your article. See your article on Tutorialwing and help others with your knowledge. Follow Facebook, LinkedIn, Google+, Twitter, Youtube for latest updates.
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