我收到此消息\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
我可以要求一些提示吗?显然我想编写一个解码器以供将来使用。
最佳答案
IBM/360 列二进制格式定义了如何在 Hollerith 卡(打洞卡)上表示十六进制值。这被描述为例如在 http://www.jwdp.com/colbin1.html并在 https://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
接下来,您必须应用按键将打洞卡数据映射到字母、数字等。您还没有指定特殊的按键。因此,使用 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 "(
关于java - 解码 IBM/360 列二进制格式的十六进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52612738/