def decimal_to_hexadecimal(decimal_num): if decimal_num == 0: return '0' hexvals = map(str, range(10)) + ['A', 'B', 'C', 'D', 'E', 'F'] h = '' while decimal_num > 0: mod = decimal_num % 16 h = hexvals[mod] + h decimal_num /= 16 return h def hexadecimal_to_decimal(hex_num): hexvals = map(str, range(10)) + ['A', 'B', 'C', 'D', 'E', 'F'] i, d = len(hex_num)-1, 0 while i >= 0: #print i d = d + hexvals.index(hex_num[i]) * 16**(len(hex_num)-1-i) i -= 1 return d def test_hex(): originals = range(20) hexes = [decimal_to_hexadecimal(d) for d in originals] decimals = [hexadecimal_to_decimal(b) for b in hexes] assert originals == decimals print 'originals:', originals print 'hexes:', hexes print 'decimals:', decimals if __name__ == '__main__': test_hex()
Below is some sample output.

No comments:
Post a Comment