数値を表す 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 コンパイラ指令により符号化方式が変わる場合がある。
符号を付加する前の左端または右端の値 | 符号付きの値を表す文字 | |||||
---|---|---|---|---|---|---|
正の値 | 負の値 | |||||
文字集合 (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 形式のデータ宣言に対しては影響を与えない。