If you have worked on number systems in mathematics or computer science, you know that the four most common number systems are binary (base-2), octal (base-8), decimal (base-10) and hexadecimal (base-16). This article will show you how to use Python to convert back and forth between these four number systems.

- Introduction
- Python functions used for number system conversion
- Decimal to Binary
- Decimal to Octal
- Decimal to Hexadecimal
- Binary to Decimal
- Octal to Decimal
- Hexadecimal to Decimal
- Binary to Octal
- Binary to Hexadecimal
- Octal to Hexadecimal
- Hexadecimal to Octal
- Hexadecimal to Binary
- Octal to Binary
- Number System Practice Exercises book

## Introduction

The binary number system is also called the base-2 number system. The valid digits (or bits) are 0 and 1.

The octal number system is also called the base-8 number system. The valid digits (or bits) are 0, 1, 2, 3, 4, 5, 6, 7.

The decimal number system is also called the base-10 number system and this is what we use in day to day life. The valid digits (or bits) are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

The hexadecimal number system is also called the base-16 number system. The valid digits (or bits) are 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Since we have four number systems, there are 12 types of conversions between them.

## Python functions used for number system conversion

The functions you will be using are `bin()`

, `oct()`

, `hex()`

, `int()`

. You will also be using string slicing. The decimal number will be of the int data type while the binary, octal and hexadecimal numbers will be of string data type.

## Decimal to Binary

In Python, binary numbers are represented by adding the prefix `0b`

. To convert a decimal number to binary, we use the `bin()`

function and pass in the decimal number as input parameter.

For example, decimal 6 in binary is 110_{2}. To convert 6 from decimal to binary:

```
i = 6
bin_i = bin(i)
print(bin_i)
```

OUTPUT:

```
0b110
```

This binary representation is of type string. You can check it with `type(bin_i)`

. To get rid of the leading `0b`

, we can use string slicing, and grab from index 2 onwards. Our code now becomes:

```
i = 6
bin_i = bin(i)[2:]
print(bin_i)
```

OUTPUT:

```
110
```

## Decimal to Octal

In Python, octal numbers are represented by adding the prefix `0o`

. To convert a decimal number to octal, we use the `oct()`

function and pass in the decimal number as input parameter.

For example, decimal 13 is 15_{8}. To convert 13 from decimal to octal:

```
i = 13
oct_i = oct(i)
print(oct_i)
```

OUTPUT:

```
0o15
```

To get rid of the leading `0o`

:

```
i = 13
oct_i = oct(i)[2:]
print(oct_i)
```

OUTPUT:

```
110
```

## Decimal to Hexadecimal

In Python, hexadecimal numbers are represented by adding the prefix `0x`

. To convert a decimal number to hexadecimal, we use the `hex()`

function and pass in the decimal number as input parameter.

For example, decimal 25 is 19_{16}. To convert 25 from decimal to hexadecimal:

```
i = 25
hex_i = hex(i)
print(hex_i)
```

OUTPUT:

```
0x19
```

To get rid of the leading `0x`

:

```
i = 25
hex_i = hex(i)[2:]
print(hex_i)
```

OUTPUT:

```
19
```

## Binary to Decimal

Now, to convert a binary number, stored as a string, to decimal, we use `int()`

with the binary number as the first input parameter and the base (2) as the second parameter. The function will return the decimal value.

For example, binary number 1110_{2} is 14. This code will convert 1110_{2} from binary to decimal:

```
x = '1110'
i = int(x, 2)
print(i)
```

OUTPUT:

```
14
```

That was easy and obviously, quite flexible.

## Octal to Decimal

To convert an octal number to decimal, we use `int()`

with the octal number as the first input parameter and 8 as the second parameter. The function will return the decimal value.

For example, octal number 177_{8} is 127. This code will convert 177_{8} from octal to decimal:

```
x = '177'
i = int(x, 8)
print(i)
```

OUTPUT:

```
127
```

## Hexadecimal to Decimal

To convert a hexadecimal number to decimal, we use `int()`

with the hexadecimal number as the first input parameter and 16 as the second parameter. The function will return the decimal value.

For example, hexadecimal number FA_{16} is 250. This code will convert FA_{16} from hexadecimal to decimal:

```
x = 'FA'
i = int(x, 16)
print(i)
```

OUTPUT:

```
250
```

## Binary to Octal

To convert a binary number `x`

to octal, we call `int(x, 2)`

and call `oct()`

over the returned value to get the octal number.

For example, 110011_{2} = 63_{8}. Let us write code for that:

```
x = '110011'
oct_x = oct(int(x, 2))[2:]
print(oct_x)
```

OUTPUT:

```
63
```

## Binary to Hexadecimal

To convert a binary number `x`

to hexadecimal, we call `int(x, 2)`

and call `hex()`

over the returned value to get the hexadecimal number. If the hexadecimal number contains digits A through F, they will be shown in lowercase. To convert them to uppcase, add the method `.upper()`

to the result.

For example, 11010011_{2} = D3_{16}. Let us write code for that:

```
x = '11010011'
hexa_x = hex(int(x, 2))[2:].upper()
print(hexa_x)
```

OUTPUT:

```
D3
```

## Octal to Hexadecimal

To convert an octal number `x`

to hexadecimal, we call `int(x, 8)`

and call `hex()`

over the returned value to get the hexadecimal number. If the hexadecimal number contains digits A through F, they will be shown in lowercase. To convert them to uppcase, add the method `.upper()`

to the result.

For example, 347_{8} = E7_{16}. Let us write code for that:

```
x = '347'
hexa_x = hex(int(x, 8))[2:].upper()
print(hexa_x)
```

OUTPUT:

```
E7
```

## Hexadecimal to Octal

To convert a hexadecimal number `x`

to octal, we call `int(x, 16)`

and call `oct()`

over the returned value to get the octal number.

For example, A0_{16} = 240_{8}. Let us write code for that:

```
x = 'A0'
oct_x = oct(int(x, 16))[2:]
print(oct_x)
```

OUTPUT:

```
240
```

## Hexadecimal to Binary

To convert a hexadecimal number `x`

to binary, we call `int(x, 16)`

and call `bin()`

over the returned value to get the binary number.

For example, A0_{16} = 10100000_{2}. Let us write code for that:

```
x = 'A0'
bin_x = bin(int(x, 16))[2:]
print(bin_x)
```

OUTPUT:

```
10100000
```

## Octal to Binary

To convert an octal number `x`

to binary, we call `int(x, 8)`

and call `oct()`

over the returned value to get the octal number.

For example, 45_{8} = 100101_{2}. Let us write code for that:

```
x = '45'
bin_x = bin(int(x, 8))[2:]
print(bin_x)
```

OUTPUT:

```
100101
```

## Number System Practice Exercises book

We are also selling our Number Systems Practice Exercise book on Amazon, if you are interested to practice your number conversions on paper.

This book contains over a thousand questions and is useful for a number of math classes, and after-school clubs like the American Computer Science League (ACSL) and USACO clubs.

## Related Posts

If you have any questions, please contact me at arulbOsutkNiqlzziyties@gNqmaizl.bkcom. You can also post questions in our Facebook group. Thank you.