我想在控制台上打印数字的二进制表示,这样我就可以看到所有与比特操作相关的操作。
在Python中怎么做呢?
在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的邮件列表文章。
bin(-7)
返回 -0b111
,但是你的函数返回 []
。 - Cees Timmerman稍微离题,但可能会有所帮助。为了更好地打印用户友好界面,我会使用自定义打印函数,定义表示字符和组间间距以提高可读性。这是一个示例函数,它接受一个列表/数组和组宽度:
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