79 lines
1.9 KiB
Python
79 lines
1.9 KiB
Python
# convert numbers into different number systems
|
|
# iterative version
|
|
import sys
|
|
|
|
|
|
def user_input():
|
|
number = int(input('decimal number to convert: '))
|
|
return number
|
|
|
|
def decimal_to_binary(number):
|
|
# decimal to binary
|
|
decimal_number = ''
|
|
# set div to a number to make the while loop work
|
|
div = 1
|
|
while (div != 0):
|
|
div = number // 2
|
|
reminder = number % 2
|
|
number = div
|
|
#print(reminder)
|
|
decimal_number += str(reminder)
|
|
return print('binary: ', decimal_number[::-1])
|
|
|
|
def decimal_to_octal(number):
|
|
octal_number = ''
|
|
div = 1
|
|
while (div != 0):
|
|
div = number // 8
|
|
reminder = number % 8
|
|
number = div
|
|
octal_number += str(reminder)
|
|
return print('octal: ', octal_number[::-1])
|
|
|
|
def decimal_to_duodecimal(number):
|
|
duodecimal_number = ''
|
|
div = 1
|
|
while (div != 0):
|
|
div = number // 12
|
|
reminder = number % 12
|
|
if (reminder > 9):
|
|
reminder = switcher(reminder)
|
|
number = div
|
|
duodecimal_number += str(reminder)
|
|
return print('duodecimal: ', duodecimal_number[::-1])
|
|
|
|
def decimal_to_hex(number):
|
|
hex_number = ''
|
|
div = 1
|
|
while (div != 0):
|
|
div = number // 16
|
|
reminder = number % 16
|
|
if (reminder > 9):
|
|
reminder = switcher(reminder)
|
|
number = div
|
|
hex_number += str(reminder)
|
|
return print('hexadezimal: ', hex_number[::-1])
|
|
|
|
# switcher to select the correct char for hex number lager then 9
|
|
def switcher(n):
|
|
switcher = {
|
|
10: 'A',
|
|
11: 'B',
|
|
12: 'C',
|
|
13: 'D',
|
|
14: 'E',
|
|
15: 'F'
|
|
}
|
|
return switcher.get(n)
|
|
|
|
def main():
|
|
number = user_input()
|
|
decimal_to_binary(number)
|
|
decimal_to_octal(number)
|
|
decimal_to_duodecimal(number)
|
|
decimal_to_hex(number)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|