-1

我正在尝试完成一个转换 text2bin 和 bin2text 的程序,但是 bin2text 函数有问题,但只有一些字符。这是给我带来问题的部分:

def bin2text(self):                 
  cadena2=' '

  self.ventana.caja1.text()
  split=[self.ventana.caja1.text()[x:x+8] for x in range(0,len(self.ventana.caja1.text()),8)]

   for i in splits:
       cadena2=cadena2+chr(int(i,2))

   self.ventana.caja2.setText(cadena2)

我收到错误:

Invalid literal for int() with base 2 '100000 1.... '

在线上

cadena2=cadena2+chr(int(i,2)) 

(椭圆点实际上不是错误的一部分,但图中有一个箭头)

当我尝试从二进制转换为文本时,使用“空格”或任何将 ASCII 传递给 Bin 的符号,该数字由六位数字组成,我得到了错误。七位或八位数字有效。

我需要知道如何在本系列的开头添加 0(0 100000),以修复它

见下图: 没问题

有问题

这就是问题

4

1 回答 1

0

试试这个:

splits = self.ventana.caja1.text().split() #split by whitespace

for i in splits:
   cadena2=cadena2+chr(int(i,2))

问题不在于位数,问题在于您发送给“int”的字符串中的空格

于 2012-09-11T03:13:18.463 回答