BCD
仕組み
- 十進数の各桁(0~9)を2進数で表す。127(10) は0001 0010 0111(2) という3つのBCD
利点
- 10進数から2進数に変換すると循環小数が生まれるが、BCDなら大丈夫。
- BCDを16進数に変換すると、10進数に変換したときと同じ表現になる。(A-Fは使用せず0-9までしか使用してないから)
BCDベースの形式
- ゾーン形式
- パック形式
ゾーン10進数(アンパック進数)
仕組み
- 4桁のゾーンビットと4桁の数値ビットのペア
- ゾーンビット
- 数値であることを表す部分
- 文字で数値を表したときのコードと互換性あり
- つまり文字コードの違いが問題になる
- 8ビット文字コードはEBCDICとASCII (JIS8)の二種類に大別されるためあまり問題にならない。
- 符号ビット
- 1桁目のゾーンビット部分は符号ビット
- EBCDICでは1100(2),JIS8コードでは1101(2)
- ベンダーによって方式が異なることが多く問題になりやすい
パック10進数
仕組み
- BCD形式で末尾4bitに符号ビットを付加したもの。
- 符号ビット
- ゾーンと同じくEBCDICでは1100(2),JIS8コードでは1101(2)
利点
アンパック(ゾーン)だと1桁に8bit必要で無駄が多い。例
1バイトで1つなので、以下のような場合は、先端に0000を付加する必要がある。+1234 0000 0001 0010 0011 0100 1100
-1234 0000 0001 0010 0011 0100 1101
EBCDIC(エビシディック)
- BCDを拡張したIBMの文字コード
- 非常に扱いにくい1バイトコード
UTF-EBCDIC
- EBCDICと互換性があり、Unicodeを表現できる文字コード
- 設計時に対象だったメインフレームではあまり使われずUTF-16が使われている
0 件のコメント:
コメントを投稿