我在这方面是新手。我试图将下面字符串的每个元素('10010010')乘以2的元素在字符串中位置的幂,并将所有乘法求和。到目前为止,我一直在尝试这样做,但我不知道该怎么做。
def decodingvalue (str1):
# read each character in input string
for ch in str1:
q=sum(2^(ch-1)*ch.isdigit())
return q
<标题>函数调用打印(decodingvalue (' 10010010 '))
谢谢你的帮助!
标题>我认为你试图将二进制转换为整型。如果是这样的话,你可以这样做:
str = '101110101'
#length is counted 1 to n, decrementing by 1 changes to 0-(n-1)
c = len(str)-1
q = 0
for ch in str:
print(q,c,ch)
q = q + (int(ch)*(2**c)) #in python power is '**'
c = c-1
if c == -1:
break
print(q)
你当然可以优化它,用更少的行完成。在python中^(插入符操作符)是位异或。