繁体   English   中英

将字节转换为人类可读的内容

[英]Convert a byte to something human-readable

我有一个包含一堆“行”数据的文件(实际上不在单独的行上)。 据我从描述(PDF)可以看出,每个“行”正好有40个字节,如下所示:

  • 我可以忽略的4个字节。
  • 2个字节,它们是(十进制)整数240或241(即00 F0或00 F1)的字节表示形式,具体取决于“行”。
  • 我可以忽略的4个字节。
  • 11个字节:前几个字节是我需要的ASCII字符串,其余的则填充00个字节。
  • 1个字节,我可以忽略。
  • 我需要1个字节。 从文档中可以看出这是ASCII'B','S'或'0'。
  • 1个字节,是小整数(即00、01等)的字节表示形式。
  • 4个字节,它们是整数的字节表示形式。
  • 4个字节,它们是整数的字节表示形式。
  • 4个字节,它们是整数的字节表示形式。
  • 4个字节,它们是整数的字节表示形式。

文件中没有其他内容(例如,没有文件头)。 (我对链接文档的理解可能是错误的,希望您进行任何更正;有关其他信息,请参见(PDF) 。)

我希望:

  1. 将数字的每个字节表示形式转换为该数字的人类可读形式,并将每个00字节转换为(例如)一个人类可读的0 ,并且
  2. 将文件转换为逗号分隔等。

现在,步骤(2)应该可以使用sed执行; 我之所以仅提及它,是因为我想确保完成步骤(1)的方式允许执行步骤(2)(例如,跟踪执行步骤(1)时每个字段有多少字节)。 但是步骤(1)我不知道该怎么做。 有人可以帮忙吗?

请注意,我对sed和bash很满意,可以处理perl,但没有实际编程经验; 而且,,,我正在没有程序安装权的Windows机器上执行此操作,因此(尽管我有sed port )我没有bash。 因此,基本上, 我需要在sed或Windows(DOS)命令行脚本中执行此操作 (不过,如果确实有必要,我应该能够将文件下载到另一台计算机上,使用它们并上载它们。)

Perl具有您可以使用的解压缩功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM