Source code for pygorithm.binary.base10

"""
Binary: Base10

Conversions from base10 to:
  - base2
  - base16

Author: Ian Doarn
"""
HEX_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'
}


[docs]def to_base2(n, visualize=False): """ Divide each number by 2 using the % operator. Reverse the resulting list of numbers and return the result :param n: decimal number :param visualize: Show process :return: binary number """ _list = [] while n > 0.5: if visualize: print("{} / 2 = {} || {} % 2 = {}".format(str(n), str(n / 2), str(n), str(n % 2))) _list.append(n % 2) n = int(n / 2) # Reverse the list, turn each number to a string, # join the string, and convert it back to an integer return int(''.join([str(i) for i in _list[::-1]]))
[docs]def to_base16(n, visualize=False): """ Convert decimal number to hexadecimal Divide the number by 16 and add the remainder to a list, round down the value after division and repeat till our value is 0 Reverse the results list, get each values respective hex value using HEX_VALUES map :param n: decimal number :param visualize: Show process :return: hexadecimal number """ _list = [] while n != 0: if visualize: print("{} % 16 = {} -> hex = {}".format( str(n), str(n % 16), HEX_VALUES[n % 16] )) _list.append(HEX_VALUES[n % 16]) n = int(n / 16) if visualize: print(_list) print("reversed = " + str(_list[::-1])) return ''.join(_list[::-1])