geekdoc-python-zh/docs/py4b/binary-tuple-to-integer-in-...

3.7 KiB
Raw Permalink Blame History

Python 中二元元组到整数的转换

原文:https://www.pythonforbeginners.com/basics/binary-tuple-to-integer-in-python

二进制元组是只包含 0 和 1 作为元素的元组。在本文中,我们将讨论在 python 中将二进制元组转换为整数的不同方法。

如何在 Python 中将二进制元组转换成整数

考虑给我们以下二元元组。

myTuple= (1,1,0,1,1,0,1)

现在,我们必须从这个二元元组创建一个整数。整数将包含二进制表示中元组的所有数字。所以,数字会是(1101101)₂。在十进制表示中,(1101101)₂的值等于109。所以,我们的程序应该给出输出109

为了将二进制数转换成十进制数,我们将数字的位数乘以 2 的幂。最右边的位乘以 2⁰。最右边第二个数字乘以 2¹右边第三个数字乘以 2²。同样第 N 位乘以 2^(N-1)。之后,将每个数字的值相加,得到十进制表示。

例如,我们可以将(1101101)₂ 转换为十进制表示如下。

(1101101)₂ = 1x2⁶+1x2⁵+0x2⁴+1x2³+1x2²+0x2¹+1x2⁰

    =64+32+0+8+4+0+1

    =109

为了在 python 中实现上述将二进制元组转换为整数的逻辑,我们将首先将变量myInt初始化为 0。我们还将使用 len()函数计算元组的长度。之后,我们将从右到左遍历元组,并使用 for 循环、 range()函数和元组长度将元素乘以 0 的幂。相乘后,我们将把这些值加到myInt中。在执行 for 循环后,我们将在myInt变量中得到整数输出。您可以在下面的示例中观察到这一点。

myTuple = (1, 1, 0, 1, 1, 0, 1)
myInt = 0
length = len(myTuple)
for i in range(length):
    element = myTuple[length - i - 1]
    myInt = myInt + element*pow(2, i)

print("The tuple is:", myTuple)
print("The output integer is:", myInt)

输出:

The tuple is: (1, 1, 0, 1, 1, 0, 1)
The output integer is: 109

使用字符串将二进制元组转换为整数

在 python 中,我们还可以使用字符串将二进制元组转换为整数。为此,我们将首先使用str()函数和map()函数将元组的所有元素转换为字符串。之后,我们将使用join()方法从元组的元素创建一个字符串。在字符串上调用 join()方法时,该方法将 iterable 对象作为输入,并返回由 iterable 元素组成的字符串。我们将首先创建一个空字符串,然后使用join() 方法从元组中获取字符串,如下所示。

myTuple = (1, 1, 0, 1, 1, 0, 1)
newTuple = map(str, myTuple)
myStr = "".join(newTuple)

print("The tuple is:", myTuple)
print("The output string is:", myStr)

输出:

The tuple is: (1, 1, 0, 1, 1, 0, 1)
The output string is: 1101101

获得字符串后,我们可以使用 int()函数直接将字符串转换为整数,如下所示。

myTuple = (1, 1, 0, 1, 1, 0, 1)
newTuple = map(str, myTuple)
myStr = "".join(newTuple)
myInt = int(myStr, 2)
print("The tuple is:", myTuple)
print("The output integer is:", myInt)

输出:

The tuple is: (1, 1, 0, 1, 1, 0, 1)
The output integer is: 109

在代码中,我们将值 2 作为第二个输入参数传递给了int()函数,以显示该字符串包含二进制数的位。

结论

在本文中,我们讨论了在 python 中将二进制元组转换为整数的两种方法。要了解更多关于字符串的知识,你可以阅读这篇关于 python 中的字符串连接的文章。你可能也会喜欢这篇关于 python 中的列表理解的文章。