From 4aa2a688a72f0cb30841cb6abf144493e2597688 Mon Sep 17 00:00:00 2001 From: Jasper <46252815+jasper256@users.noreply.github.com> Date: Mon, 8 Jul 2019 12:49:37 -0400 Subject: [PATCH 1/2] added decimal to hexadecimal conversion --- conversions/decimal_to_hexadecimal.py | 44 +++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 conversions/decimal_to_hexadecimal.py diff --git a/conversions/decimal_to_hexadecimal.py b/conversions/decimal_to_hexadecimal.py new file mode 100644 index 000000000000..827f5bffb7b2 --- /dev/null +++ b/conversions/decimal_to_hexadecimal.py @@ -0,0 +1,44 @@ +""" Convert Base 10 (Decimal) Values to Hexadecimal Representations """ + +# set decimal value for each hexadecimal digit +values = { + 0:'0', + 1:'1', + 2:'2', + 3:'3', + 4:'4', + 5:'5', + 6:'6', + 7:'7', + 8:'8', + 9:'9', + 10:'a', + 11:'b', + 12:'c', + 13:'d', + 14:'e', + 15:'f' +} + +def decimal_to_hexadecimal(decimal): + """ take decimal value, return hexadecimal representation as str """ + hexadecimal = '' + power = 1 + while decimal > 0: + remainder = decimal % (16 ** power) + decimal -= remainder + hexadecimal = values[remainder] + hexadecimal + decimal /= (16 ** power) + power += 1 + return hexadecimal + +def main(): + """ print test cases """ + print("5 in hexadecimal is", decimal_to_hexadecimal(5)) + print("15 in hexadecimal is", decimal_to_hexadecimal(15)) + print("37 in hexadecimal is", decimal_to_hexadecimal(37)) + print("255 in hexadecimal is", decimal_to_hexadecimal(255)) + print("4096 in hexadecimal is", decimal_to_hexadecimal(4096)) + +if __name__ == '__main__': + main() \ No newline at end of file From 501e9fe3cbcd30c32d78ea9fdba0e1e5665963a0 Mon Sep 17 00:00:00 2001 From: Jasper <46252815+jasper256@users.noreply.github.com> Date: Mon, 8 Jul 2019 19:09:25 -0400 Subject: [PATCH 2/2] fixed error occuring as more digits were needed --- conversions/decimal_to_hexadecimal.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/conversions/decimal_to_hexadecimal.py b/conversions/decimal_to_hexadecimal.py index 827f5bffb7b2..f91fac063adc 100644 --- a/conversions/decimal_to_hexadecimal.py +++ b/conversions/decimal_to_hexadecimal.py @@ -23,13 +23,11 @@ def decimal_to_hexadecimal(decimal): """ take decimal value, return hexadecimal representation as str """ hexadecimal = '' - power = 1 while decimal > 0: - remainder = decimal % (16 ** power) + remainder = decimal % 16 decimal -= remainder hexadecimal = values[remainder] + hexadecimal - decimal /= (16 ** power) - power += 1 + decimal /= 16 return hexadecimal def main(): @@ -39,6 +37,7 @@ def main(): print("37 in hexadecimal is", decimal_to_hexadecimal(37)) print("255 in hexadecimal is", decimal_to_hexadecimal(255)) print("4096 in hexadecimal is", decimal_to_hexadecimal(4096)) + print("999098 in hexadecimal is", decimal_to_hexadecimal(999098)) if __name__ == '__main__': main() \ No newline at end of file