- 904 名前:デフォルトの名無しさん mailto:sage [2007/08/03(金) 05:51:13 ]
- >>899
10進法の1.2は2進法で1._0011_(2) ("_"で括った部分を繰り返し)という循環小数になるのでそれを例に採る. 私の理解ではその段落の意味するところは: IEEE doubleを使うプロセッサ上の処理系は "1.2d0" => 0 01111111111 00110011(40桁の略)0011 "1.2s0" => 0 01111111 00110011(12桁の略)001 or 0 01111111111 00110011(40桁の略)0011 (←2行上と同じ; 処理系が "practical" だと思えばこうなる) となるだろう.ところが "1.2 | 10" => 0 01111111111 001100110(この先,0が43桁続く; けちビットに注意) となる(という私の理解). 2進10桁の精度で得た浮動小数点数を(例えば)IEEE double形式に「広げて」メモリに格納するということ. C言語で double f = 1.2f; と書いたとき,fに格納される浮動小数点数が10進16桁の精度でなく8桁の精度しか持たないのと同じイメージ.
|

|