mirror of
https://github.com/autistic-symposium/master-algorithms-py.git
synced 2025-04-29 20:26:07 -04:00
65 lines
1.2 KiB
Python
Executable File
65 lines
1.2 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
__author__ = "bt3"
|
|
|
|
''' convert an integer to a string in any base'''
|
|
|
|
def convert_from_dec_to_any_base(number, base):
|
|
'''
|
|
>>> number, base = 9, 2
|
|
>>> convert_from_dec_to_any_base(number, base)
|
|
'1001'
|
|
'''
|
|
|
|
convertString = '012345679ABCDEF'
|
|
|
|
if number < base:
|
|
return convertString[number]
|
|
|
|
else:
|
|
return convert_from_dec_to_any_base(number//base, base) + \
|
|
convertString[number%base]
|
|
|
|
|
|
|
|
def convert_from_decimal_to_binary(number, base):
|
|
'''
|
|
>>> number, base = 9, 2
|
|
>>> convert_from_decimal_to_binary(number, base)
|
|
1001
|
|
'''
|
|
|
|
multiplier, result = 1, 0
|
|
|
|
while number > 0:
|
|
result += number%base*multiplier
|
|
multiplier *= 10
|
|
number = number//base
|
|
|
|
return result
|
|
|
|
|
|
|
|
def convert_from_decimal_larger_bases(number, base):
|
|
'''
|
|
>>> number, base = 31, 16
|
|
>>> convert_from_decimal_larger_bases(number, base)
|
|
'1F'
|
|
'''
|
|
strings = "0123456789ABCDEFGHIJ"
|
|
result = ""
|
|
|
|
while number > 0:
|
|
digit = number%base
|
|
result = strings[digit] + result
|
|
number = number//base
|
|
|
|
return result
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
import doctest
|
|
doctest.testmod()
|
|
|