# 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:")

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

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--
}
} else {
}
}

if(!(
((charAtPos >= '0') && (charAtPos <= '9'))
|| ((charAtPos >= 'A') && (charAtPos <= 'F'))
|| ((charAtPos >= 'a') && (charAtPos <= 'f'))
)) {
break
}
}
}
```

When you run the program, output will be –

```Enter n:
abcdfe
```
###### 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,