# Kotlin Program to Convert HexaDecimal 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 HexaDecimal number as input. Now, write a Kotlin program to convert HexaDecimal number to Decimal.

```Input:
7

Output:
7
```
```Input:
a1

Output:
161
```
```Input:
a9

Output:
169
```

## 1. Program to Convert HexaDecimal to Decimal

A HexaDecimal number consist of either digits from 0 to 9 (i.e. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9) or alphabets from ‘A’ to ‘F’ or ‘a’ to ‘f’ (i.e. ‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’).
Below are the numeric value of alphabets used –

• ‘A’ or ‘a’: 10
• ‘B’ or ‘b’: 11
• ‘C’ or ‘c’: 12
• ‘D’ or ‘d’: 13
• ‘E’ or ‘e’: 14
• ‘F’ or ‘f’: 15

It means HexaDecimal number can contain only 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’ and ‘f’.

Note: Please note that you can also use lowercase alphabets.

###### Pseudo Algorithm
• Initialise a variable decimalNum, that stores equivalent decimal value, with 0
• Extract each digit from the hexadecimal number.
• While extracting, multiply the extracted digit with proper base (power of 16).
• For example, if hexadecimal number is 110, decimalNum = 1 * (16^2) + 1 * (16^1) + 0 * (16^0) = 272

Sourcecode –

```fun main() {

println("Enter n:")
val hexaDecimalN = readLine()

if(checkHexaDecimalNumber(hexaDecimalN!!)) {

var i = hexaDecimalN.length - 1
var decimalN: Long = 0
var base = 1
while(i >= 0) {
val charAtPos = hexaDecimalN[i]

val lastDigit = if((charAtPos >= '0') && (charAtPos <= '9')) {
charAtPos - '0'
} else if((charAtPos >= 'A') && (charAtPos <= 'F')) {
charAtPos.toInt() - 55
} else if((charAtPos >= 'a') && (charAtPos <= 'f')) {
charAtPos.toInt() - 87
} else {
0
}

decimalN += lastDigit * base
base *= 16

i--
}
println("Equivalent HexaDecimal : \$decimalN")
} else {
println("\$hexaDecimalN is not a HexaDecimal number")
}
}

private fun checkHexaDecimalNumber(hexaDecimalNum: String): Boolean {
var isHexaDecimalNum = true

for(charAtPos in hexaDecimalNum) {
if(!(
((charAtPos >= '0') && (charAtPos <= '9'))
|| ((charAtPos >= 'A') && (charAtPos <= 'F'))
|| ((charAtPos >= 'a') && (charAtPos <= 'f'))
)) {
isHexaDecimalNum = false
break
}
}
return isHexaDecimalNum
}
```

When you run the program, output will be –

```Enter n:
abcdfe
Equivalent HexaDecimal : 11259390
```
###### Explanation:
• We use checkHexaDecimalNumber function to check if number is hexaDecimal or not. For any number to be hexaDecimal, its’s digit should be between –
• 0 to 9
• A to F
• a to f

At first, we checked if entered value is hexaDecimal or not.
If NO, we print a message “number is not hexaDecimal number”.
If Yes, we start converting those number into decimal –

• variable base contains power of 16 to the position at which current last digit we have in lastDigit
• Decimal value is sum of lastDigit * (power of 16 to the position at which current lastDigit is at)
• For example,
hexaDecimalN = 110

decimalN = 1 * (16 ^ 2) + 1 * (16^1) + 0 * (16 ^ 0) = 272

Thus, we went through Kotlin Program to Convert HexaDecimal 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