如何解析某种格式中的二进制数据?

时间:2013-11-26 21:10:22

标签: lexical-analysis linguistics

考虑二进制数据(视频/图像/音频/可执行文件)可视为一长串随机字节, 当数据在特殊格式(SQL,数据库中的BOLB,MP3,JSON,XML等)中时,解析器如何知道特殊字符(或字符序列,如{,},\ t,空格,EOF)用于格式化,而不是二进制数据的一部分,反之亦然?

另外,我不太确定这个问题属于哪个类别,所以我提出了词汇分析和语言学。计算机科学的哪些学科/领域研究这个?

1 个答案:

答案 0 :(得分:3)

对于这个问题,这确实是一个奇怪的地方。我有点不清楚你在这里问什么,但总而言之,并非所有二进制数据(假设你的意思是机器可读数据)都是相同的。例如:音频,图像和视频不是可执行数据,它们是解析数据;因此他们的处理方式不同。

此外,“二进制数据”并不像您第一次打开十六进制编辑器时想象的那样任意:)。可执行文件被构造成DATA和CODE段,因此使用这些标志,计算机知道如何正确处理事物。至于你提到的其他三种类型,它们的结构都不同,具体取决于它们的文件格式,这就是为什么有这么多不同的文件格式!解析这些文件的可执行程序知道如何根据代码中包含的有关文件格式的信息处理它们,这当然意味着程序必须知道如何处理文件格式并获得如何分割加载的信息它正确,这就是为什么你不能在Microsoft Paint中打开MP3。

对于文件格式和数据存储的研究,它在许多领域都有应用,它本身并不是一个真正的领域,而是在许多领域出现的主题。信息理论,逆向工程,自然语言处理以及许多其他用途可用于理解不同的文件类型以及它们如何存储数据。无论如何,这只是一个简短的粗略解释,并且有很多东西你可以谷歌(尝试.exe文件格式或.jpg / .png文件格式开始)。