Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, 言語解説書

その他のデータ属性の変換

下記のデータ属性を持つデータ項目を ソースからターゲットへ変換する場合の規則について、以下に説明します。

10 進数表記と 2 進数表記の間で変換が行われると、 値が変わることがあります。 2 進数と 10 進数の間の変換では、係数 3.32 が次のように使用されます。

変換の計算には、表 22 にある CEIL 値の表を参照してください。

表 22. CEIL (n*3.32) の値と CEIL (n/3.32) の値の表
n
CEIL
(n*3.32)
n
CEIL
(n/3.32)
1 4 1-3 1
2 7 4-6 2
3 10 7-9 3
4 14 10-13 4
5 17 14-16 5
6 20 17-19 6
7 24 20-23 7
8 27 24-26 8
9 30 27-29 9
10 34 30-33 10
11 37 34-36 11
12 40 37-39 12
13 44 40-43 13
14 47 44-46 14
15 50 47-49 15
16
531
50-53
16
17 57 54-56 17
18 60 57-59 18
19 64 60-63 19
20 67 64-66 20
21 70 67-69 21
22 74 70-73 22
23 77 74-76 23
24 80 77-79 24
25 83 80-83 25
26 87 84-86 26
27 90 87-89 27
28 93 90-92 28
29 97 93-96 29
30 100 97-99 30
31 103 100-102 31
32 107 103-106 32
33 110 107-109 33
    110-112 34
    113-116 35 
注 1:
ceil(16*3.32) = 54 のときは、53 という値が使用されます。 そうでない場合には、浮動小数点 10 進数 (16) が 2 進数に変換され、 (浮動小数点 2 進数 (54) が拡張浮動小数点として表示されるので) 長精度の 浮動小数点から拡張精度の浮動小数点に変換されることになります。  

固定小数点整数値の場合は、変換しても値は変わりません。 小数部分を持つ固定小数点の値の場合は、因数 3.32 によって必要なだけの桁数またはビット数が用意され、変換後の値ともとの値の違いは最低位の 1 桁 (1 ビット) 未満に抑えられます。

例えば、属性が FIXED DECIMAL (1,1) である 10 進定数 .1 は、.0001B という 2 進数値に 変換され、したがって 1/10 は 1/16 に変換されます。 属性が FIXED DECIMAL (2,2) である 10 進定数 .10 は、.0001100B という 2 進数値に 変換され、したがって 10/100 は 12/128 に変換されます。


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)