From 06c9c3fe17c8440ca25d8e2b72fb932b7909ac74 Mon Sep 17 00:00:00 2001 From: BarsTiger Date: Thu, 9 Sep 2021 21:50:42 +0300 Subject: [PATCH] NumeralSystemConverter.py released --- .../NumeralSystemConverter.py | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/NumeralSystemConverter/NumeralSystemConverter.py b/NumeralSystemConverter/NumeralSystemConverter.py index 4eaa145..ddb1132 100644 --- a/NumeralSystemConverter/NumeralSystemConverter.py +++ b/NumeralSystemConverter/NumeralSystemConverter.py @@ -1,6 +1,7 @@ print("©KOTIKOT, script by BarsTiger") print() print("Please, type only int numbers, str is allowed only in hex") +print("To change system, press Ctrl+C or close window and rerun program with new settings") hextonum = { "0": 0, @@ -21,6 +22,13 @@ hextonum = { "F": 15 } +def getkeybyval(val, dictionary): + keys = [] + for key in list(dictionary): + if dictionary[key] == val: + keys.append(key) + return keys + systypefrom = int(input("Type base number of system convert FROM: ")) systypeto = int(input("Type base number of system convert TO: ")) if systypefrom > 16 or systypeto > 16: @@ -38,7 +46,23 @@ def todecimal(number, base): return res +def fromdecimal(number, base): + remainders = [] + result = str() + + while number != 0: + remainders.insert(0, number % base) + number = number // base + + for symbol in remainders: + result += getkeybyval(int(symbol), hextonum)[0] + + return result + while True: inputnumber = input("Type number, that you want to convert: ") inputnumber = inputnumber.upper() - print(todecimal(inputnumber, systypefrom)) + + numtoprint = fromdecimal(todecimal(inputnumber, systypefrom), systypeto) + + print(numtoprint)