在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