Python bin:如何使用bin()函数

470 阅读2分钟

bin() 函数将一个整数转换为二进制字符串。其结果是一个有效的 Python 表达式。bin() 是一个内置函数,它接收整数x并以字符串格式返回x的二进制表示。如果x不是一个整数,那么必须实现**_index()_**方法以获得一个整数作为返回值,而不是一个 "TypeError"异常。

Python bin

Python bin() 是一个内置的方法,可以将十进制数据类型转换为二进制数据类型。bin()函数返回一个整数的二进制表示,作为字符串。Python bin() 减少了编码所需的时间,消除了麻烦。

语法

参见Python bin()函数的语法:

bin(number)

参数

**bin()函数将数字作为参数转换为二进制数字。如果数字不是整数,则执行__index__()**方法来返回整数。

例子

请看下面的代码示例:

print("Binary of Eleven is:", bin(11))

请看下面的输出:

➜  pyt python3 app.py
Binary of Eleven is: 0b1011
➜  pyt

正如你在上面的例子中看到的,bin()函数返回一个整数的以0b为前缀的等价二进制数。

如果你不想要那个前缀0b,你可以使用format() 函数:

print(format(11, 'b'))

请看下面的输出:

  pyt python3 app.py
1011
  pyt

将一个对象转换为二进制实现__index__()方法

请看下面的例子,在这个例子中,我们将对象实现为二进制的实现__index__()方法:

class Add:
    a = 11
    b = 19

    def __index__(self):
        return self.a + self.b


app = Add()
print('Equivalent binary number is:', bin(app))

请看下面的输出:

➜  pyt python3 app.py
Equivalent binary number is: 0b11110
➜  pyt

这就是当我们在Python bin()函数中没有整数作为参数时,__index__()函数是如何用来返回一个整数的。

更多的例子

请看下面的例子:

a = 11
b = bin(a)
print(type(b))
print(bin(a))

请看输出结果:

➜  pyt python3 app.py
<class 'str'>
0b1011
➜  pyt

bin()方法是可用的,与Python 2.x和3.x版本兼容。

使用Python bin()与浮点数

请看下面的bin()与float的代码例子:

a = 11.19
print(bin(a))

请看下面的输出:

➜  pyt python3 app.py
Traceback (most recent call last):
  File "app.py", line 2, in <module>
    print(bin(a))
TypeError: 'float' object cannot be interpreted as an integer
➜  pyt

因此,bin()函数可以用于具有不同格式的整数,如八进制的十六进制。该函数将负责将它们转换为二进制字符串。

python bin()函数将整数转换为二进制字符串的方法就这样了。我们还了解到,通过实现返回一个整数的__index__()函数,可以将一个Object转换为二进制字符串表示。

本教程就到此为止。