我怎么解决这个问题? python3.2

时间:2012-09-10 00:01:28

标签: binary ascii python-3.2

我正在尝试完成一个将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),以修复它

见下图: no problem

with problem

this is the problem

1 个答案:

答案 0 :(得分:0)

试试这个:

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

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

问题不在于数字位数,问题是您发送到'int'的字符串中的空格