バイナリ フィールドの説明は次のとおりです。
発信者番号を圧縮BCDコードで表現し、余剰ビットを「0xF」で埋める
'16c'
私は構造体形式で印刷しようとしましたが、次('3', '\x00', '\x02', '\x05', '\x15', '\x13', 'G', 'O', '\xff', '\xff', '\xff', '\xff', '\xff', '\xff', '\xff', '\xff')
のように'16b'
なり(51, 0, 2, 5, 21, 19, 71, 79, -1, -1, -1, -1, -1, -1, -1, -1)
ました。電話番号を取得する必要がありますが、上記の番号は無効です。
print struct.unpack_from('>16b', str(data.read()),offset=46)
上記のコードは機能せず、無効な数字が表示されます。その 16 バイト フィールドをどの形式で解凍する必要があり、BCD コードを変換する方法を教えてください。