tt = 100 print tt tt0 = tt<<1 tt1 = tt>>1 tt2 = tt>>2 tt3 = tt>>3 print tt0 print tt1 print tt2 print tt3 id = "167772160" result = int(id) print result sct = result >> 27 print sct result1 = result - (sct<<27) print result1 eb = result1 >> 25 print "eb="+str(eb) result2 = result1 - (eb << 25) l1 = (result2 >> 21) if (eb == 1): bar = l1 + 3 if (eb == 0 or eb == 2): bar = l1 + 1 print "bar="+str(bar) result3 = result2 - (l1 << 21) phi = result3 >> 15 print "phi="+str(phi) result4 = result3 - (phi << 15) eta = (result4 >> 11) - 6; print "eta="+str(eta) -------------------------------output--------------------- $ python bitshift.py 100 <===== tt = 100 print tt [0110 0100]=64+32+4=100 200 <==== tt0 = tt<<1 (1 bit shift to left) [1100 1000]=128+64+8=200 50 <==== tt1 = tt>>1 (1 bit shift to right) [0011 0010]=32+16+2= 50 25 <==== tt2 = tt>>2 (2 bit shift to right) 12 <==== tt3 = tt>>3 (3 bit shift to right) [0000 1100]=8+4=12 167772160 1 33554432 eb=1 bar=3 phi=0 eta=-6