gpt4 book ai didi

python - 在 python 中打印出 c 类型的二进制表示

转载 作者:太空狗 更新时间:2023-10-30 01:22:56 25 4
gpt4 key购买 nike

我在 C/C++ 中有以下数字,例如 0x0202020202ULL 我想以二进制形式打印出来1000000010000000100000001000000010

你能帮忙吗?

最佳答案

您可以结合使用切片(或str.rstrip)、intformat

>>> 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'), 16), 'b')
'1000000010000000100000001000000010'

更新:

from itertools import islice
def formatted_bin(inp):
output = format(int(inp.rstrip('UL'), 16), '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

关于python - 在 python 中打印出 c 类型的二进制表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18178045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com