bin(30)的输出中"b"代表什么:"0b11110"?有什么办法可以摆脱这个"b"吗?如何让bin()的输出始终返回标准的8位数输出?
gim*_*mel 50
使用zfill():
返回左边用数字字符串填充的长度为字符串的数字字符串.正确处理符号前缀.如果width小于len(s),则返回原始字符串.
>>> bin(30)[2:].zfill(8)
'00011110'
>>>
Run Code Online (Sandbox Code Playgroud)
Dou*_*der 30
0b类似于0x - 它表示数字格式为二进制(0x表示数字为十六进制).
见http://docs.python.org/dev/whatsnew/2.6.html#pep-3127-integer-literal-support-and-syntax
要剥离0b,最简单的方法是使用字符串切片: bin(30)[2:]
同样,格式为8个字符宽:
('00000000'+bin(30)[2:])[-8:]
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用字符串格式化程序(在2.6+中)一步完成所有操作:
"{0:08b}".format(30)
Run Code Online (Sandbox Code Playgroud)
neh*_*iah 14
利用着名的format()
函数和鲜为人知的第二个参数并将其链接起来zfill()
'b'
- 二进制
'x'
- 十六进制
'o'
- 八进制
'd'
- 十进制
>>> print format(30, 'b')
11110
>>> print format(30, 'b').zfill(8)
00011110
Run Code Online (Sandbox Code Playgroud)
应该做.这里'b'
代表二进制一样'x'
,'o'
和'd'
分别为十六进制,八进制和十进制.
小智 6
您可以使用Python 2或Python 3中的格式:
>> print( format(15, '08b') )
00001111
Run Code Online (Sandbox Code Playgroud)
[]的
归档时间: |
|
查看次数: |
47003 次 |
最近记录: |