@@ -8,6 +8,7 @@ class Base(Enum):
88 BINARY = 2
99 OCTAL = 3
1010 HEXADECIMAL = 4
11+ ASCII = 5
1112
1213# Clear Command
1314def clear_cmd ():
@@ -56,20 +57,32 @@ def error(err):
5657# Convertion
5758def convertion (base , data ):
5859 try :
59- if base == Base .DECIMAL :
60- decimal = int (data )
61- elif base == Base .BINARY :
62- decimal = int (data , 2 )
63- elif base == Base .OCTAL :
64- decimal = int (data , 8 )
65- elif base == Base .HEXADECIMAL :
66- decimal = int (data , 16 )
67- else :
68- error ("Invalid base" )
60+ match base :
61+ case Base .DECIMAL :
62+ decimal = int (data )
63+ case Base .BINARY :
64+ decimal = int (data , 2 )
65+ case Base .OCTAL :
66+ decimal = int (data , 8 )
67+ case Base .HEXADECIMAL :
68+ decimal = int (data , 16 )
69+ case Base .ASCII :
70+ decimal = [ord (character ) for character in data ]
71+ binary = '' .join ([bin (character )[2 :] for character in decimal ])
72+ octal = '' .join ([oct (character )[2 :] for character in decimal ])
73+ hexadecimal = '' .join ([hex (character )[2 :] for character in decimal ])
74+ asci = '' .join ([chr (character ) for character in decimal ])
75+
76+ # Convert to string
77+ decimal = '' .join ([str (character ) for character in decimal ])
78+ return (decimal , binary , octal , hexadecimal , asci )
79+ case _:
80+ error ("Invalid base" )
6981 binary = bin (decimal )[2 :]
7082 octal = oct (decimal )[2 :]
7183 hexadecimal = hex (decimal )[2 :]
72- return (decimal , binary , octal , hexadecimal )
84+ asci = chr (decimal )
85+ return (decimal , binary , octal , hexadecimal , asci )
7386 except ValueError :
7487 error ("System has value error" )
7588 except TypeError :
@@ -89,19 +102,20 @@ def confirmation(base):
89102 error ("Invalid choice" )
90103
91104# Result
92- def result (decimal , binary , octal , hexadecimal ):
105+ def result (decimal , binary , octal , hexadecimal , asci ):
93106 separator ()
94107 print (f"Decimal : { decimal } " )
95108 print (f"Binary : { binary } " )
96109 print (f"Octal : { octal } " )
97110 print (f"Hexadecimal : { hexadecimal } " )
111+ print (f"ASCII : { asci } " )
98112 separator ()
99113
100114# Main
101115def main (base ):
102116 data = get_input (base )
103- decimal , binary , octal , hexadecimal = convertion (base , data )
104- result (decimal , binary , octal , hexadecimal )
117+ decimal , binary , octal , hexadecimal , asci = convertion (base , data )
118+ result (decimal , binary , octal , hexadecimal , asci )
105119 confirmation (base )
106120
107121# Logic
@@ -117,4 +131,4 @@ def logic():
117131 main (Base (int (select )))
118132
119133# Run
120- logic ()
134+ logic ()
0 commit comments