Converting a hexadecimal string to decimal or integer format is often required in programming applications. A common requirement is to convert IP addresses in hex to their decimal form.

This article will explain the conversion of a string from hex to decimal in python.

**Hex to decimal conversion**

Python library provides an

**int function**which can be used to convert a hex value into decimal format. It accepts 2 arguments.

- First is the number that needs to be converted. It may be supplied as an integer or a string.
- Second is the base of the first argument.

`int`

returns an integer representation(or base 10 equivalent) of the first argument. In other words, **it converts the value supplied to it in decimal(base 10) format**.

`int`

is called with 2 arguments, then the first argument must be a string.Thus, if you provide a hexadecimal value to `int`

, it will convert it into decimal. **Example,**

# hex string num_hex = '0F' # convert hex to decimal num_dec = int(num_hex, 16) print('Value in hex:', num_hex) print('Value in decimal:', num_dec)

Following is the output of above program

Value in hex: 0F

Value in decimal: 15

You can also use `int`

function to convert a number in** binary to decimal** or an **octal value to decimal**. For binary to decimal, the second argument to `int`

will be 2 and for octal, it will be 8.

**Gotchas**

Remember below pointers while using this method to convert hex to decimal.

- If the base is not supplied to
`int`

, it will consider the number to be in decimal(base 10) format since default value of base is 10.

Thus, if you omit the base and modify the`int(num_hex, 16)`

to`int(num_hex)`

, then you will get an error.ValueError: invalid literal for int() with base 10: ‘0F’

- If base is supplied, then the first argument should be a string. Trying to use a number will again raise an error.
TypeError: int() can’t convert non-string with explicit base

**Hit the clap**if you found this article useful. 5