gpt4 book ai didi

python - 二进制转十进制(数学方式)

转载 作者:太空宇宙 更新时间:2023-11-04 07:22:26 25 4
gpt4 key购买 nike

如果有一个二进制数:10011100十进制为 156。

我想用数学方法把二进制变成十进制。

例如:二进制:10011100

第一个数字是1:2**7
第四个数字是 1:2**4
第五个数字是 1:2**3
第六个数字是 1:2**2

然后 2**7+2**4+2**3+2**2 = 156

我想,我需要使用 string.find() 方法。

>>> my_str = '10011100'   
>>> my_str = my_str[::-1]
>>> print(my_str)
00111001
>>> my_str.find('1')
2
>>>

我只能找到第一个“1”。

如何找到'1'的所有索引?

最佳答案

为什么要检索索引?您可以像这样简单地迭代这些位:

num = sum(2**i for i, bit in enumerate(my_str) if bit == '1')

无论如何,如果您喜欢两个单独的步骤,您可以像这样获取索引:

indexes = [i for i, bit in enumerate(my_str) if bit == '1']
num = sum(2**i for i in indexes)

关于python - 二进制转十进制(数学方式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14630561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com