Fascination N−D−File ゾーン10進数

戻る


情報理論(電気・電子系教科書シリーズ)


情報理論のエッセンス


宇宙を復号する
―量子情報理論が解読する、宇宙という驚くべき暗号 (単行本)

アンパック10進数とは、数値をコンピュータ上で表現する手法の一つで、BCDをベースに定義されている。ゾーン10進数とも呼ぶが、パック10進数の登場により、「パック」ではないという意味で「アンパック」と呼ばれるようになったものと思われる。

10進数の1桁を、4桁のゾーンビットと4桁の数値ビットとに分けて表現するが、数値の最後の桁はゾーンビットではなく正の数か負の数かを判断するための符号ビットが割り当てられる。なお、ゾーンビットは、EBCDICでは15、JIS8コードでは3を、符号ビットは、IBM互換のメインフレームでは正の数に12、負の数に13が割り当てられている。符号部についてはCOBOLベンダ各社で相違があるため、非常に互換性が低い。

ゾーンビット

ゾーンビットはデータが数値であることを表すコードである。同時に、文字で数値を表したときのコードと互換性がある。したがって、使用しているコンピュータが扱える文字コードによってコードが異なる。しかしながら、8ビット文字コードはEBCDICとASCII(JIS8)の二種類に大別されるため、互換性の問題は限定される。非常に問題になるのは、むしろ符号ビットであり、ベンダ各社でバラバラな現状である。

構造

以下に、+789をEBCDICで表現した場合を例に、アンパック10進数の構造を示す。

1111 0111 1111 1000 1100 1001
ゾーンビット 数値ビット ゾーンビット 数値ビット 符号ビット 数値ビット

+1234をアンパック10進数で表現する
EBCDIC 1111 0001 1111 0010 1111 0011 1100 0100
ASCII(JIS8) 0011 0001 0011 0010 0011 0011 ???? 0100
-1234をアンパック10進数で表現する
EBCDIC 1111 0001 1111 0010 1111 0011 1101 0100
ASCII(JIS8) 0011 0001 0011 0010 0011 0011 ???? 0100

inserted by FC2 system