Ama ファイル生成シミュレーターを作成しています。Ama 仕様では、フィールドのバイト数 (ビット数ではない) を BCD16、BCD12 など (BCD{数値}) として指定します。
BCD16 のフィールドの場合、実際の長さは 8 バイトです。BCD16 の意味を教えてください。BCD が 2 進化 10 進数であることは知っていますが、BCD16 の意味がわかりません。
2 バイト (16 ビット) の BCD エンコーディングのように見えます。ここを参照してください。
これは 2 バイトで、BDC16 でエンコードされた 4 桁の数値を格納できます。各半バイト (別名ニブル) には 1 つの BCD 桁が格納されます。
例 - 0011-0110 0010-0101 は 3-6 2-5 で、3x100 + 6x10 + 2x1 + 5x0.1 = 362.5 です。
先輩と話した後、定義を見つけたと思います。
BCD{x} は、1 桁の場合、x ビットかかることを意味します。では、BCD3だと1桁を表すのに3ビット必要になります。もちろん、すべての組み合わせを表すことはできませんが、非常に大きな値を表すことはできます。
例: BCD1 では、1 バイトを使用して 11111111 を表すことができます。
これが私が見つけたものです。定義に誤りがある場合は、修正してください。