如何解码 IBM/360 列二进制格式的十六进制数
How to decode hexadecimal number in IBM/360 column binary format
我有一个消息:
x2400\x1100\x2001\x1020\x2100\x0900\x2008\x2012\x0900\x1001\x2001\x1010\x2001\x0900\x0802\x0812\x1200\x2010\x0802\x1004\x0820\x1010\x2100\x2002\x1012
它是 IBM 列二进制格式。看了一些文档,自己做不到。
解码后的消息是:
ALIMCTF(TRINITY'KEYPUNCH)
为了解码消息,必须考虑以下因素:
每个字符由两个字节标识,例如\x2400
对应 A
.
第一步,必须分别解码两个字节。为此,已发布的 link(高级用法 部分)中的 IBM/360 列二进制格式 (cbf) 必须使用。每个位都分配给一个特定的位置,例如如果字节 1 的值为 0x20
,则对应于位 5
,因此对应于位置 Y
。类似于字节 2,例如如果字节 2 的值为 0x12 = 0x10 + 0x02
,那么这对应于位 4
和 1
,因此对应于位置 5
和 8
。总的来说,这导致位置 Y
、5
和 8
或简称 Y58
。
第二步,必须识别由位置决定的字符。为此,必须使用已发布的 link(用法 部分)中的 IBM 029 keypunch。例如。位置 Y
、5
和 8
确定字符 (
.
如果对整封邮件都这样做,table 结果如下:
Message Byte1, Byte2 Byte1, Byte2, Position Character
hex hex cbf cbf IBM 029
\x2400 24 00 Y1 0 Y1 A
\x1100 11 00 X3 0 X3 L
\x2001 20 01 Y 9 Y9 I
\x1020 10 20 X 4 X4 M
\x2100 21 00 Y3 0 Y3 C
\x0900 09 00 03 0 03 T
\x2008 20 08 Y 6 Y6 F
\x2012 20 12 Y 58 Y58 (
\x0900 09 00 03 0 03 T
\x1001 10 01 X 9 X9 R
\x2001 20 01 Y 9 Y9 I
\x1010 10 10 X 5 X5 N
\x2001 20 01 Y 9 Y9 I
\x0900 09 00 03 0 03 T
\x0802 08 02 0 8 08 Y
\x0812 08 12 0 58 58 '
\x1200 12 00 X2 0 X2 K
\x2010 20 10 Y 5 Y5 E
\x0802 08 02 0 8 08 Y
\x1004 10 04 X 7 X7 P
\x0820 08 20 0 4 04 U
\x1010 10 10 X 5 X5 N
\x2100 21 00 Y3 0 Y3 C
\x2002 20 02 Y 8 Y8 H
\x1012 10 12 X 58 X58 )
解码消息位于最后一列(从上到下阅读)。
我有一个消息:
x2400\x1100\x2001\x1020\x2100\x0900\x2008\x2012\x0900\x1001\x2001\x1010\x2001\x0900\x0802\x0812\x1200\x2010\x0802\x1004\x0820\x1010\x2100\x2002\x1012
它是 IBM 列二进制格式。看了一些文档,自己做不到。
解码后的消息是:
ALIMCTF(TRINITY'KEYPUNCH)
为了解码消息,必须考虑以下因素:
每个字符由两个字节标识,例如
\x2400
对应A
.第一步,必须分别解码两个字节。为此,已发布的 link(高级用法 部分)中的 IBM/360 列二进制格式 (cbf) 必须使用。每个位都分配给一个特定的位置,例如如果字节 1 的值为
0x20
,则对应于位5
,因此对应于位置Y
。类似于字节 2,例如如果字节 2 的值为0x12 = 0x10 + 0x02
,那么这对应于位4
和1
,因此对应于位置5
和8
。总的来说,这导致位置Y
、5
和8
或简称Y58
。第二步,必须识别由位置决定的字符。为此,必须使用已发布的 link(用法 部分)中的 IBM 029 keypunch。例如。位置
Y
、5
和8
确定字符(
.
如果对整封邮件都这样做,table 结果如下:
Message Byte1, Byte2 Byte1, Byte2, Position Character
hex hex cbf cbf IBM 029
\x2400 24 00 Y1 0 Y1 A
\x1100 11 00 X3 0 X3 L
\x2001 20 01 Y 9 Y9 I
\x1020 10 20 X 4 X4 M
\x2100 21 00 Y3 0 Y3 C
\x0900 09 00 03 0 03 T
\x2008 20 08 Y 6 Y6 F
\x2012 20 12 Y 58 Y58 (
\x0900 09 00 03 0 03 T
\x1001 10 01 X 9 X9 R
\x2001 20 01 Y 9 Y9 I
\x1010 10 10 X 5 X5 N
\x2001 20 01 Y 9 Y9 I
\x0900 09 00 03 0 03 T
\x0802 08 02 0 8 08 Y
\x0812 08 12 0 58 58 '
\x1200 12 00 X2 0 X2 K
\x2010 20 10 Y 5 Y5 E
\x0802 08 02 0 8 08 Y
\x1004 10 04 X 7 X7 P
\x0820 08 20 0 4 04 U
\x1010 10 10 X 5 X5 N
\x2100 21 00 Y3 0 Y3 C
\x2002 20 02 Y 8 Y8 H
\x1012 10 12 X 58 X58 )
解码消息位于最后一列(从上到下阅读)。