首页 > 解决方案 > 如何修复不是在字符串格式化期间转换的所有参数?

问题描述

我想将一些二进制流更改为十进制,但在字符串格式化期间我没有转换所有参数。关键是我在使用binaryToDecimal (10100000)哪个10100000是我列表的第一个值时得到了结果。但是当我使用binaryToDecimal (instream_chunks[0])which is my forloop 我得到了上述错误。我该如何解决?我是 python 新手对不起我的简单问题.......

def binaryToDecimal(binary):
      
    binary1 = binary
    decimal, i, n = 0, 0, 0
    while(binary != 0):
        dec = binary % 10
        decimal = decimal + dec * pow(2, i)
        binary = binary//10
        i += 1
    print(decimal)
    
    instream = '1010000000011000000110000000001'

    instream_chunks = [instream[i:i+8]for i in range (0, len(instream), 8)]

for i in range (len(instream_chunks)):
    
     img_value = binaryToDecimal (instream_chunks[i])

标签: pythonnumpy

解决方案


在对字符串使用函数之前,您需要将字符串转换为整数。像这样:

def binaryToDecimal(binary):
      
    binary1 = binary
    decimal, i, n = 0, 0, 0
    while(binary != 0):
        dec = binary % 10
        decimal = decimal + dec * pow(2, i)
        binary = binary//10
        i += 1
    print(decimal)
    
instream = '1010000000011000000110000000001'

instream_chunks = [instream[i:i+8]for i in range (0, len(instream), 8)]

for i in range (len(instream_chunks)):
     img_value = binaryToDecimal (int(instream_chunks[i]))

推荐阅读