【问题标题】:Decode hexadecimal number in IBM/360 column binary format以 IBM/360 列二进制格式解码十六进制数
【发布时间】:2019-03-07 20:09:32
【问题描述】:

我有这条消息\1004\1001\2001\1010\0900\0000\0006\2012。它采用 IBM 列二进制格式。阅读并尝试理解,很多像下面这样的文章甚至无法让我走上正轨。

https://v8doc.sas.com/sashtml/lrcon/z0695224.htm http://homepage.divms.uiowa.edu/~jones/cards/codes.html

我可以要求一些提示吗?显然我想写一个解码器以备将来使用。

【问题讨论】:

    标签: java c# binary


    【解决方案1】:

    IBM/360 列二进制格式定义了十六进制值在 Hollerith 卡(打孔卡)上的表示方式。这被描述为例如在http://www.jwdp.com/colbin1.htmlhttps://www.masswerk.at/keypunch/

    有几个版本的打孔卡,参见例如https://en.wikipedia.org/wiki/Punched_card。很常见的 IBM 80 列穿孔卡有 80 列和 12 行。这些行从上到下标记为 Y、X、0、1、2、3、4、5、6、7、8、9。使用 IBM/360 列二进制格式,您的代码将遵循以下格式:

    hex     Byte 1 (hex)     Byte 2 (hex)     Byte 1 (cbf)     Byte 2 (cbf)     cbf (=column binary format)
    \1004   10               04               X                7                X7
    \1001   10               01               X                9                X9
    \2001   20               01               Y                9                Y9
    \1010   10               10               X                5                X5
    \0900   09               00               03               0                03
    \0000   00               00               0                0                blank
    \0006   00               06               0                78               78
    \2012   20               12               Y                58               Y58
    

    接下来,您必须应用 keypunch 将穿孔卡片数据映射到字母、数字等。您没有指定特殊的按键。因此,使用 IBM 型号 029 键盘打孔器是有意义的,这是最常见的键盘打孔器,参见例如https://www.masswerk.at/keypunch/ 和你的链接 http://homepage.divms.uiowa.edu/~jones/cards/codes.html.

    cbf      029 keypunch
    X7       P
    X9       R
    Y9       I
    X5       N
    03       T
    blank    blank
    78       "
    Y58      (
    

    总之,结果是 PRINT "(

    【讨论】:

    • 嗨,非常感谢。你能解释一下如何将十六进制字节转换为 cbf 吗?例如\0006 -> 00 06 0 78。06 -> 78 背后的逻辑是什么?
    • 好的,我知道第二部分了。但是你为什么要 0x06 = 0x04+0x02 呢?同样的方法对于 0x2102 会是什么样子?
    • 非常感谢您的帮助。谢谢。
    猜你喜欢
    • 2021-05-27
    • 1970-01-01
    • 2023-03-15
    • 2014-10-30
    • 2013-12-20
    • 2014-11-11
    • 2014-09-13
    • 2012-11-02
    • 2016-05-24
    相关资源
    最近更新 更多