【问题标题】:Ascii stream with missing bits (no parity)缺少位的 Ascii 流(无奇偶校验)
【发布时间】:2017-02-07 03:04:19
【问题描述】:

我的任务是在真正的教科书中查找 0 和 1,以便从中破译 ASCII 消息。问题是很难找到所有的 0 和 1,我觉得我跳过了很多。这完全打乱了 ASCII 转换。我尝试过的一些事情:

  • 通过检测空格(或接近空格的东西)来“同步”单词
  • 尝试根据仅假设字母字符(a-z、A-Z)的假设来纠正字符
  • 尝试根据语言中字符频率的假设来纠正单词(荷兰语)

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

【问题讨论】:

  • 这个问题在当前形式下没有意义......请提供(一个小样本)示例输入和预期输出(至少......发布一些代码可能是个好主意您尝试过的没有给出正确的结果,以及结果错误的方式)
  • 我不确定您所说的“在真正的教科书中”是什么意思 --- 您是在扫描印刷书籍(在纸上)并以某种方式从扫描仪设备(或扫描图像)中丢失位-或-数据文件)?您是否正在扫描一本书并寻找打印的“0”和“1”字符,但扫描仪并未记录所有字符(或将它们误识别为大写-O 或小写-L)?或者您是从一个代表书籍内容的完整文件开始(PDF?ASCII?LaTeX?XML?位图?),但不知何故没有得到您期望的所有数据?

标签: python ascii parity


【解决方案1】:
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

我猜...不太清楚您的输入或预期输出是什么...

【讨论】:

    猜你喜欢
    • 2013-03-18
    • 2015-06-29
    • 2015-04-04
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 2020-09-25
    相关资源
    最近更新 更多