DISPLAY 形式

数値を表す 0 から 9 までの COBOL の数字は、コンピューターのメモリ 1 バイトあたり 1 文字で、基数 10 を持つ。これが COBOL 言語の標準データ形式である。

符号付きのデータ項目で符号を SEPARATE と指定しない場合 (「SIGN 句」トピック、および「特殊名段落」トピックの NUMERIC SIGN 句の規則を参照)、SIGN 句で LEADING を指定すると符号は数字の左端に配置され、TRAILING を指定すると符号は数字の右端に配置される。符号付きデータは、以下の表 1 に示すとおりに必要な数値に組み込まれる。実際には、数値が負の値である場合、文字のビット 6 (16 進値の「40」) は 0 から 1 に設定される。

符号付きのデータ項目で符号を SEPARATE と指定した場合、単一の別の COBOL 文字として、正か負かに応じて「+」または「-」が数字に付加される。

符号付きのデータ項目で SIGN 句を指定しない場合、特殊名段落で NUMERIC SIGN 句を指定しない限り、符号文字は右端の数字位置に配置される。データ記述項で SIGN 句を指定した場合、NUMERIC SIGN 句 は (指定されている場合)、その項目に対して無視される。

次の表では、かっこ内の数字は COBOL 文字用の 16 進符号化方式表現である。一部のシステムでは、CHARSET または SIGN コンパイラ指令により符号化方式が変わる場合がある。

表 1. DISPLAY 形式の SEPARATE でない符号付き数字
符号を付加する前の左端または右端の値 符号付きの値を表す文字
正の値 負の値
文字集合 (ASCII) 文字集合 (EBCDIC) 文字集合 (ASCII) 文字集合 (EBCDIC)
符号 (ASCII) 符号 (EBCDIC) 符号 (EBCDIC) 符号 (ASCII) 符号 (EBCDIC) 符号 (EBCDIC)
0 0(30) {(7B) {(C0) p(70) }(7D) }(D0)
1 1(31) A(41) A(C1) q(71) J(4A) J(D1)
2 2(32) B(42) B(C2) r(72) K(4B) K(D2)
3 3(33) C(43) C(C3) s(73) L(4C) L(D3)
4 4(34) D(44) D(C4) t(74) M(4D) M(D4)
5 5(35) E(45) E(C5) u(75) N(4E) N(D5)
6 6(36) F(46) F(C6) v(76) O(4F) O(D6)
7 7(37) G(47) G(C7) w(77) P(50) P(D7)
8 8(38) H(48) H(C8) x(78) Q(51) Q(D8)
9 9(39) I(49) I(C9) y(79) R(52) R(D9)

符号を SEPARATE として指定した場合、DISPLAY データ項目を記憶するために必要な文字数は、PICTURE 句の中の「9」に 1 を加えた数となる。SYNCHRONIZED 句は、DISPLAY 形式のデータ宣言に対しては影響を与えない。