【问题标题】:Packed Decimal (but NOT Comp-3)压缩十进制(但不是 Comp-3)
【发布时间】:2012-08-14 13:56:02
【问题描述】:

我在这个数据文件中遇到了一系列数字字段。 字段为 6 字节(12 个半字节)

第一个半字节 - 到目前为止,在所有情况下都是“4” 第二个半字节表示小数点左边的位数。 剩下的半字节是该字段的值。

所以 - 例如, 4327 0000 0000 = 270.0 和, 4260 0000 0000 = 60.0 和, 4026 3000 0000 = 0.263

我的问题是: “4”重要吗? (如何/为什么?)

第一个半字节是否有可能也包含符号位? (我目前所有的例子都是正值——所以我没有参考框架。)

如果这是一个更长的字段 - 比如说一个有 16 个半字节的字段 - 小数点左侧的数字值是否有可能高于 9 - 那将如何表示? (第二个半字节为 'A'/'B'/etc 或增加第一个半字节使其显示为 '5'?

有没有人见过这种特殊的模式 - 并且知道发生了什么?

(我不知道用于创建文件的编程语言。)

【问题讨论】:

    标签: decimal reverse-engineering packed


    【解决方案1】:

    我认为 4 是一个类型的半字节。类型指示如何解释其余的半字节。

    【讨论】:

    • 其他“类型”是什么?有什么图表之类的吗?
    • 在您的上下文中,我不能假设任何事情。但是在野外,有很多像上面这样的表示。例如,类型“1”可能是流行的 BCD 编码,只能处理整数。使用 type'1' 您可以将其余字节表示为数字,因此第二个半字节变成数字而不是计数器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多