我正在尝试制作一个程序,将给定的整数(由32位整数可以容纳的值限制)转换为32位二进制数。例如1应该返回(000..31times)1。我一直在搜索文档以及所有内容,但是还无法找到一些具体方法。我得到它的工作,其中位数是根据数字的大小,但在字符串中。有人可以告诉更有效的方法吗?
'{:032b}'.format(n)其中n是整数。如果二进制表示形式大于32位,它将根据需要扩展:
>>> '{:032b}'.format(100)
'00000000000000000000000001100100'
>>> '{:032b}'.format(8589934591)
'111111111111111111111111111111111'
>>> '{:032b}'.format(8589934591 + 1)
'1000000000000000000000000000000000' # N.B. this is 33 digits long
Run Code Online (Sandbox Code Playgroud)
如果需要,您可以左移或右移整数并将其转换为字符串以进行显示。
>>> 1<<1
2
>>> "{:032b}".format(2)
'00000000000000000000000000000010'
>>>
Run Code Online (Sandbox Code Playgroud)
或者如果你只需要一个二进制文件,你可以考虑 bin
>>> bin(4)
'0b100'
Run Code Online (Sandbox Code Playgroud)