两个方向都能算。上面输域号出位图,下面输位图出域号,还会把 64/128 位逐位画出来。
位图告诉接收方:这条报文里出现了哪些数据域。主位图 8 字节 64 位,每一位对应一个域,从第 1 位开始数,不是第 0 位——这是新人最常犯的偏移错误。
第 1 位有特殊含义:它置 1 表示后面还跟着一个扩展位图,用来表示 65–128 域。所以当你用到任何一个 65 号以上的域时,第 1 位必须置 1,位图也从 8 字节变成 16 字节。上面的计算器会自动处理这一点。
拿十六进制位图的第一个字符:7 是二进制 0111,说明第 1 位为 0(无扩展位图)、第 2、3、4 位为 1(DE2、DE3、DE4 存在)。一个字符 = 四位,按这个规律往后推就能手工核对。
别把位图本身算成 DE1。DE1 就是扩展位图的存在标志位,它不是一个独立的数据域,所以上面的反查结果里不会把 1 列出来。另外,位图长度要和编码方式匹配:ASCII 编码下 16 个字符表示 8 字节,二进制编码下就是 8 个字节本身。