Given a Large Binary Number as Input. Now, write a Kotlin Program to Convert Large Binary Number to decimal number.
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 –
val countDigit = binaryN!!.length - 1 |
for (pos in countDigit downTo 0 ) { |
val curChar = binaryN[pos] |
if (!(curChar == '1' || curChar == '0' )) { |
println( "$binaryN is not binary number." ) |
if (decimalVal != (- 1 ).toLong()) { |
println( "Equivalent decimal: $decimalVal" ) |
When you run the program, output will be –
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