在python中打印出c类型的二进制表示
发布时间:2020-05-23 20:01:34 所属栏目:Python 来源:互联网
导读:我在C/C++中有以下编号,例如,0x0202020202ULL,我想以二进制形式1000000010000000100000001000000010打印出来. 能否请你帮忙? 您可以使用切片(或str.rstrip),int和format的组合. inp = 0x0202020202UL format(int(inp[:-2], 16), b)100000001000
|
我在C/C++中有以下编号,例如,0x0202020202ULL,我想以二进制形式1000000010000000100000001000000010打印出来. 能否请你帮忙? 解决方法您可以使用切片(或str.rstrip),int和format的组合.>>> inp = '0x0202020202UL'
>>> format(int(inp[:-2],16),'b')
'1000000010000000100000001000000010'
# Using `str.rstrip`,This will work for any hex,not just UL
>>> format(int(inp.rstrip('UL'),'b')
'1000000010000000100000001000000010'
更新: from itertools import islice
def formatted_bin(inp):
output = format(int(inp.rstrip('UL'),'b')
le = len(output)
m = le % 4
padd = 4 - m if m != 0 else 0
output = output.zfill(le + padd)
it = iter(output)
return ' '.join(''.join(islice(it,4)) for _ in xrange((le+padd)/4))
print formatted_bin('0x0202020202UL')
print formatted_bin('0x10')
print formatted_bin('0x101010')
print formatted_bin('0xfff')
输出: 0010 0000 0010 0000 0010 0000 0010 0000 0010 0001 0000 0001 0000 0001 0000 0001 0000 1111 1111 1111 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
