python中整数到二进制的转换

2024-05-17 00:16:29 发布

您现在位置:Python中文网/ 问答频道 /正文

为了将整数转换为二进制,我使用了以下代码:

>>> bin(6)  
'0b110'

何时删除“0b”,我用这个:

>>> bin(6)[2:]  
'110'

如果我想把6显示为00000110,而不是110,该怎么办?


Tags: 代码bin二进制整数
3条回答
>>> '{0:08b}'.format(6)
'00000110'

为了解释格式化字符串的各个部分:

  • {}将变量放入字符串中
  • 0在参数位置0处获取变量
  • :添加此变量的格式选项(否则它将表示十进制6
  • 08将数字格式化为8位数字,左边加0
  • b将数字转换为其二进制表示

如果您使用的是Python3.6或更高版本,也可以使用f字符串:

>>> f'{6:08b}'
'00000110'

只是另一个想法:

>>> bin(6)[2:].zfill(8)
'00000110'

通过string interpolationPython3.6+)的较短路径:

>>> f'{6:08b}'
'00000110'

有点无聊的方法。。。

>>> bin8 = lambda x : ''.join(reversed( [str((x >> i) & 1) for i in range(8)] ) )
>>> bin8(6)
'00000110'
>>> bin8(-3)
'11111101'

相关问题 更多 >