I was looking at bit-manipulation in python. I noticed that every time I shifted over the bit representation of an integer it continued to work. How does this work in python and is it safe? Will this cause a memory overflow at some point? Here's a sample test I ran to see if I could keep going. https://repl.it/KPp2/0
value = (1 << 20)
print "20 bits", value, value.bit_length()
value <<= 12
print "32 bits", value, value.bit_length()
value <<= 12
print "44 bits", value, value.bit_length()
value <<= 20
print "64 bits", value, value.bit_length()
value <<= 8
print "72 bits", value, value.bit_length()
value <<= 56
print "128 bits", value, value.bit_length()
value <<= 128
print "256 bits", value, value.bit_length()
value <<= 256
print "512 bits", value, value.bit_length()
value <<= 512
print "1024 bits", value, value.bit_length()