第十章:代码案例学习:解析二进制数据格式.pdfVIP

  • 6
  • 0
  • 约2.27万字
  • 约 19页
  • 2017-07-11 发布于河北
  • 举报

第十章:代码案例学习:解析二进制数据格式.pdf

第十章:代码案例学习:解析二进制数据格式.pdf

第⼗章:代码案例学习:解析⼆进制数据格式 第⼗章:代码案例学习:解析⼆进制数据格式 本章将会讨论⼀个常见任务:解析 (parsing )⼆进制⽂件。选这个任务有两个⽬的。 第⼀个确 是想谈谈解析过程,但更重要的⽬标是谈谈程序组织、重构和消除样板代 码 (boilerplate code :通常指不重要,但没它又不⾏的代码)。我们将会展⽰如何清 理冗余代码,并为第⼗四章讨论 Monad 做点准备。 我们将要⽤到的⽂件格式来⾃于 netpbm 库,它包含⼀组⽤来处理位图图像的程序及 ⽂件格式,它古⽼⽽令⼈尊敬。这种⽂件格式不但被⼴泛使⽤,⽽且还⾮常简单,虽 然解析过程也不是完全没有挑战。对我们⽽⾔最重要的是,netpbm ⽂件没有经过压 缩。 灰度⽂件 netpbm 的灰度⽂件格式名为 PGM (”portable grey map” )。事 上它不是⼀个格式, ⽽是两个:纯⽂本 (又名P2 )格式使⽤ ASCII 编码,⽽更常⽤的原始 (P5 )格式则采 ⽤⼆进制表⽰。 每种⽂件格式都包含头信息,头信息以⼀个“魔法”字符串开始,指出⽂件格式。纯⽂ 本格式是 P2 ,原始格式是 P5 。魔法字符串之后是空格,然后是三个数字:宽度、⾼ 度、图像的最⼤灰度值。这些数字⽤⼗进制 ASCII 数字表⽰,并⽤空格隔开

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档