1

我是 python 新手,并试图做这样的事情:

a=23
"{0:b}".format(a)

---> '10111'

然后我想在没有补码的情况下否定它,结果应该是'01000'但似乎没有任何效果

其次,我必须用 0 填充左侧,我发现类似

"{0:12b}".format(a)
'       10111'

但它只会使字符串更长,用空格填充它

编辑:对我来说完美的解决方案是

"{0:12b}".format(a)
'000000010110' 
"{0:12b}".format(~a)
'111111101001'

(当然不能这样工作)

4

1 回答 1

3

将 a0放在12左侧以零填充输出。

In [1]: "{0:012b}".format(a)
Out[1]: '000000010111'

对于那些 comp,您可以进行字符串操作或数学方法:

 In [2]: "{0:012b}".format(2**12-1-a)
 Out[2]: '111111101000'

只需将 更改为2**12您要显示的位数

于 2014-01-21T13:33:25.233 回答