# Python Number Converter

Generally speaking, practiced skill cannot be easily forgotten. It is far better to go through the process and practice converting a number, rather than to memorize the process.

Before we get started, have a look at the Tools Page to get started with a Python Interpreter we could use for this exercise.

### Number to Printable Hex

```
def nibble_to_ascii(nibble: int) -> str:
"""
This is a comment
Input: Nibble (4-bits)
Output: Single character HEX as a string
Example: Input = 10, Output = 'A'
Example: Input = 8, Output = '8'
"""
table = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']
return table[nibble]
def to_hex(number: int) -> str:
"""
This is a comment
Input: Number (integer)
Output: String
Example: Input = 43605, Output = "0xAA55"
"""
answer = ""
# Forever loop
while True:
# Integer divide using the // operator
quotient = number // 16
# Get the remainder using the % operator
remainder = number % 16
# Accumulate result
answer = nibble_to_ascii(remainder) + answer
# Set the number we need to use for next time
number = quotient
# We break the "loop" when division turns to zero
if (quotient == 0):
break
return "0x" + answer
print(to_hex(123456789))
print(to_hex(0b1010101))
print(to_hex(0xDEADBEEF))
```

### Exercise

Write a function `to_binary()`

that takes a number, and returns the string equivalent version of the number in binary. You can borrow the template above of `to_hex()`

function and most of the logic might be similar except that we would be dividing number by 2 rather than 16.