在Python中打印数字的表示forms
我想打印数字的位表示forms到控制台上,以便我可以看到所有正在完成的操作。
我怎么可能在Python中做到这一点?
这种东西?
>>> ord('a') 97 >>> hex(ord('a')) '0x61' >>> bin(ord('a')) '0b1100001'
在Python 2.6+中 :
print bin(123)
结果是:
0b1111011
在Python 2.x
>>> binary = lambda n: n>0 and [n&1]+binary(n>>1) or [] >>> binary(123) [1, 1, 0, 1, 1, 1, 1]
请注意,示例摘自:“Mark Dufour” http://mail.python.org/pipermail/python-list/2003-December/240914.html
从Python 2.6开始,使用string.format方法 :
"{0:b}".format(0x1234)
特别是你可能想要使用填充,以便不同号码的多个打印仍然排队:
"{0:16b}".format(0x1234)
并留下填充与前导0而不是空格:
"{0:016b}".format(0x1234)
bin
函数
稍微偏离主题,但可能会有所帮助。 为了更好的用户友好打印,我会使用自定义打印function,定义表示字符和组间距,以提高可读性。 这里是一个示例函数,它需要一个列表/数组和组的宽度:
def bprint(A, grp): for x in A: brp = "{:08b}".format(x) L=[] for i,b in enumerate(brp): if b=="1": L.append("k") else: L.append("-") if (i+1)%grp ==0 : L.append(" ") print "".join(L) #run A = [0,1,2,127,128,255] bprint (A,4)
输出:
---- ---- ---- ---k ---- --k- -kkk kkkk k--- ---- kkkk kkkk