python bin()函数详细教程
bin()
函数将一个整数转换成前缀为”0b“的二进制字符串形式,如果参数不是int
对象,那它需要定义__index__()
方法并返回一个整数;
print(bin(12)) #十进制
print(bin(0o45)) #八进制
print(bin(0xff)) #十六进制
class test:
def __index__(self):
return 123
A = test()
print(bin(A)) #支持__index__()方法的对象
输出:
0b1100 0b100101 0b11111111 0b1111011
长度填充
bin()
函数返回的二进制字符串都带有”0b“前缀,且长度没有进行填充;
print(bin(0x01))
print(bin(0x01)[2:].zfill(4)) #去除0b前缀,进行填充
输出:
0b1 0001
错误的类型
当向bin()
函数传递一个非int对象,或该对象不支持__index__()
方法时,将造成TypeError
类型错误;
print(bin(0.1))
输出:
Traceback (most recent call last): File "C:\Users\hocn\Desktop\test.py", line 3, in <module> print(bin(0.1)) TypeError: 'float' object cannot be interpreted as an integer