2016-09-28 82 views
2

我已经给出了一个任务,在真正的教科书中查找0和1以解密ASCII消息。问题是,很难找到所有的0和1,我感觉我跳过了很多。这完全混淆了ASCII转换。有些事情我想:带缺失位的Ascii流(无奇偶校验)

  • “同步”字通过检测空间(或东西接近有一个空格)
  • 试图仅基于字母字符的假设(包括AZ,az)纠正字符
  • 试图纠正基于字符的频率假设的语言(荷兰语)

但我仍然没有得到很多的主要问题是同步(何时开始一个新的字符?) 。我可能不得不再次浏览这些书籍(叹息,第三次左右),但我想知道你们是否对ASCII二进制流中丢失位的问题有任何其他想法?

+1

这个问题没有意义在目前的形式......请提供(小样本)例如输入和期望的输出(至少...它可能是一个好主意,张贴一些代码,你已经尝试过,没有给出正确的结果,以及结果是错误的方式) –

+2

我不知道什么你的意思是“在一本真实的教科书中”---你是否正在扫描一本印刷书籍(在纸上),并以某种方式从扫描仪设备(或扫描的图像或数据文件)中丢失一些位?您是否扫描一本书并寻找打印的“0”和“1”字符,但扫描仪没有记录所有字符(或将它们错误地标识为大写字母O或小写字母L)?或者,您是从一个完整的文件开始代表一本书的内容(PDF?ASCII?LaTeX?XML?位图?),并以某种方式无法获得您期望的所有数据? –

回答

0
all_ones_and_zeros = re.findall("[01]",corpus_of_text) 
BITS_PER_ASCII = 8 #(ascii characters are all the ordinals from 0-255 ... or 8 bits) 
asciis = zip([iter(all_ones_and_zeros)]*BITS_PER_ASCII) 
bins = [''.join(x) for x in asciis] 
chars = [chr(int(y,2)) for y in bins] 

print "MSG:",chars 

我想......它不是很清楚你的输入或预期输出是什么...