Integer to String

In [1]:
n = 769

print(n)
base = 10

print(n//base, n%base)
n = n//base

print(n//base, n%base)
n = n//base

print(n//base, n%base)
n = n//base
769
76 9
7 6
0 7
In [13]:
import string
from rcviz import CallGraph, viz
In [14]:
cg = CallGraph()

@viz(cg)
def to_str(n, base):
    """Convert from any base from 2 to 16"""
    
    #convert_string = "0123456789ABCDEF"  # digits for hexadecimal values
    convert_string = string.digits + string.ascii_uppercase[0:6]
    
    if n < base:
        return convert_string[n]
    else:
        return to_str(n//base, base) + convert_string[n%base]
In [4]:
to_str(769, 10)
Out[4]:
'769'
In [5]:
cg
callviz: Rendering in inline in Jupyter Notebook
Out[5]:
nodes=3 140514667268528 to_str(769,10) ret: 769 140514667269056 to_str(76,10) ret: 76 140514667268528->140514667269056 1 (⇑2) 140514641289040 to_str(7,10) ret: 7 140514667269056->140514641289040 2 (⇑1)
In [8]:
to_str(123456, 10)
Out[8]:
'123456'
In [9]:
cg
callviz: Rendering in inline in Jupyter Notebook
Out[9]:
nodes=6 140514667268528 to_str(123456,10) ret: 123456 140514642300928 to_str(12345,10) ret: 12345 140514667268528->140514642300928 1 (⇑5) 140514641298400 to_str(1234,10) ret: 1234 140514642300928->140514641298400 2 (⇑4) 140514666409088 to_str(123,10) ret: 123 140514641298400->140514666409088 3 (⇑3) 140514642293856 to_str(12,10) ret: 12 140514666409088->140514642293856 4 (⇑2) 140514667262640 to_str(1,10) ret: 1 140514642293856->140514667262640 5 (⇑1)
In [15]:
to_str(123456, 2)
Out[15]:
'11110001001000000'
In [16]:
cg
callviz: Rendering in inline in Jupyter Notebook
Out[16]:
nodes=17 140514641301824 to_str(123456,2) ret: 11110001001000000 140514666453888 to_str(61728,2) ret: 1111000100100000 140514641301824->140514666453888 1 (⇑16) 140514641302352 to_str(30864,2) ret: 111100010010000 140514666453888->140514641302352 2 (⇑15) 140514666454640 to_str(15432,2) ret: 11110001001000 140514641302352->140514666454640 3 (⇑14) 140514666455168 to_str(7716,2) ret: 1111000100100 140514666454640->140514666455168 4 (⇑13) 140514667287808 to_str(3858,2) ret: 111100010010 140514666455168->140514667287808 5 (⇑12) 140514641302880 to_str(1929,2) ret: 11110001001 140514667287808->140514641302880 6 (⇑11) 140514666455696 to_str(964,2) ret: 1111000100 140514641302880->140514666455696 7 (⇑10) 140514667268528 to_str(482,2) ret: 111100010 140514666455696->140514667268528 8 (⇑9) 140514667286208 to_str(241,2) ret: 11110001 140514667268528->140514667286208 9 (⇑8) 140514666416080 to_str(120,2) ret: 1111000 140514667286208->140514666416080 10 (⇑7) 140514641300736 to_str(60,2) ret: 111100 140514666416080->140514641300736 11 (⇑6) 140514666457760 to_str(30,2) ret: 11110 140514641300736->140514666457760 12 (⇑5) 140514667282496 to_str(15,2) ret: 1111 140514666457760->140514667282496 13 (⇑4) 140514667283040 to_str(7,2) ret: 111 140514667282496->140514667283040 14 (⇑3) 140514667281440 to_str(3,2) ret: 11 140514667283040->140514667281440 15 (⇑2) 140514666449024 to_str(1,2) ret: 1 140514667281440->140514666449024 16 (⇑1)
In [26]:
to_str(769, 2)
1
Out[26]:
'1100000001'
In [27]:
bin(769)
Out[27]:
'0b1100000001'
In [28]:
hex(769)
Out[28]:
'0x301'
In [29]:
oct(769)
Out[29]:
'0o1401'
In [30]:
x = 0x301
In [31]:
x
Out[31]:
769
In [32]:
to_str(769, 16)
3
Out[32]:
'301'
In [33]:
to_str(769, 8)
1
Out[33]:
'1401'
In [34]:
to_str(769, 7)
2
Out[34]:
'2146'