コンピュータのデータ表現では、数値をそのまま扱うのではなく、EBCDICやBCDといった形式に変換して保存することがあります。本記事では、「1104260323」を正の数値としてゾーン型2進化10進数(EBCDIC系)に変換し、16進数で表す考え方を整理します。
ゾーン型2進化10進数とは
ゾーン型2進化10進数は、各10進数字を1バイトで表現する方式です。
上位4ビットが「ゾーン部」、下位4ビットが「数字部」となり、数字部分はBCDで表されます。
EBCDIC環境ではゾーン部が特定の値(正の数ではFなど)になるのが特徴です。
与えられた数値の分解
対象の数値1104260323は、1桁ずつ分解して扱います。
つまり「1,1,0,4,2,6,0,3,2,3」という10個の数字として処理します。
それぞれの数字をBCD形式で表現する準備を行います。
BCDとEBCDICの変換ルール
BCDでは各数字は4ビットで表され、0〜9は0000〜1001に対応します。
ゾーン型では上位4ビットにゾーン値(正の数ではF=1111)が付加されます。
そのため各桁は「F + 数字BCD」という1バイト構造になります。
具体的な16進数表現
各数字を変換すると以下のようになります。
1→F1、1→F1、0→F0、4→F4、2→F2、6→F6、0→F0、3→F3、2→F2、3→F3となります。
したがって16進数列は「F1 F1 F0 F4 F2 F6 F0 F3 F2 F3」となります。
まとめ
ゾーン型2進化10進数は、各桁をBCD化しゾーンビットを付加することで表現されます。
今回のような正の数ではゾーン部がFとなるため、各桁はF付きの1バイトとして変換されます。
結果として16進数では「F1F1F0F4F2F6F0F3F2F3」と表現されます。


コメント