python转⼆进制⾼位补0_转换为⼆进制并在Python中保持前导
转换为⼆进制并在Python中保持前导零
python格式化输出format我试图使⽤Python中的bin()函数将整数转换为⼆进制。 但是,它总是删除我实际需要的前导零,这样结果总是8位:
例:
bin(1) -> 0b1
# What I would like:
bin(1) -> 0b00000001
有办法做到这⼀点吗?
8个解决⽅案
153 votes
使⽤0b功能:
>>> format(14, '#010b')
'0b00001110'
0b函数只是按照格式规范迷你语⾔格式化输⼊。 #使格式包括0b前缀,并且010⼤⼩格式化输出以适合10个字符宽度,具有0填充; 0b前缀为2个字符,其他8为⼆进制数字。
这是最紧凑和直接的选择。
如果要将结果放在⼀个更⼤的字符串中,请使⽤格式化的字符串⽂字(3.6+)或使⽤0b并在占位符#的冒号后⾯放置0b函数的第⼆个参数:
>>> value = 14
>>> f'The produced output, in binary, is: {value:#010b}'
'The produced output, in binary, is: 0b00001110'
>>> 'The produced output, in binary, is: {:#010b}'.format(value)
'The produced output, in binary, is: 0b00001110'
实际上,即使只是格式化单个