%表題   らくらくDCL
%
%履歴
%\Drireki{
%         95/04/13 余田 成男
%        }
%

\begin{center}
\fbox{\parbox{14.75cm}{
\fbox{\parbox{14.5 cm}{
\vspace{1em}
\begin{center}
\parbox{13cm}{

{\bf 計算機のなまり 2}

\begin{center}
{\large \bf 実数の内部表現}
\end{center}

整数の内部表現は, ほとんどの機種で同一の表現となっているのに対して, 実
数型変数に関してはいくつかの規格が存在します.
\vspace{1em}

一般に, 実数型の変数は浮動小数点の形で表現されます. 
すなわち, $\beta$進法を使った場合, 実数は
\[
  \pm(0. f_1 f_2 f_3 \cdots f_m)_\beta \times \beta^{\pm E}
\]
という形で表されています. 
ここで, 
\[
  \pm(0. f_1 f_2 f_3 \cdots f_m)_\beta = 
  \pm (f_1 \times \beta^{-1} + f_2 \times \beta^{-2} 
     + f_3 \times \beta^{-3} + \cdots f_m \times \beta^{-m})
\]
は仮数部で, $f_i$は0から$\beta-1$までの整数($f_1 \neq 0 $)です. 
また, $\beta^{\pm E}$は指数部で, $E$は0または正の整数です. 
\vspace{1em}

主要な実数表現として, IBM形式とIEEE(アイ・トリプル・イーと読む)形式と
があります. どちらも, 32ビットを1語とする点では同じですが, 採用されて
いる進法が異なり, 表現できる実数の範囲や精度に違いがあります.
\vspace{1em}

IBM形式は16進演算が基本になっていて, 各ビットの使い方は以下の通りです. 

      \begin{center}
        {\setlength{\tabcolsep}{0.5mm}
        \begin{tabular}%
          {|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|
            c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
          \hline
           0 &  1 &  2 &  3 &  4 &  5 &  6 &  7 &
           8 &  9 & 10 & 11 & 12 & 13 & 14 & 15 &
          16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 &
          24 & 25 & 26 & 27 & 28 & 29 & 30 & 31 \\
          \hline
          $\pm$ & \multicolumn{7}{c|}{$E+64$} &
          \multicolumn{4}{c|}{$f_1$} & \multicolumn{4}{c|}{$f_2$} & 
          \multicolumn{4}{c|}{$f_3$} & \multicolumn{4}{c|}{$f_4$} & 
          \multicolumn{4}{c|}{$f_5$} & \multicolumn{4}{c|}{$f_6$} \\
          \hline
        \end{tabular}
        }
      \end{center}
\vspace{1em}

IEEE形式は2進法の浮動小数点形式で, IBM形式に比べて相対精度が高いという
特徴があります. 各ビットの使い方は以下の通りです.

      \begin{center}
        {\setlength{\tabcolsep}{0.5mm}
        \begin{tabular}%
          {|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|
            c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
          \hline
           0 &  1 &  2 &  3 &  4 &  5 &  6 &  7 &
           8 &  9 & 10 & 11 & 12 & 13 & 14 & 15 &
          16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 &
          24 & 25 & 26 & 27 & 28 & 29 & 30 & 31 \\
          \hline
          $\pm$ & \multicolumn{8}{c|}{$E+126$} &
          \multicolumn{3}{c|}{$ f_{2}  \cdot \cdot  f_{4}$}  &
          \multicolumn{4}{c|}{$ f_{5}  \cdots \cdot f_{8}$}  &
          \multicolumn{4}{c|}{$ f_{9}  \cdots \cdot f_{12}$} &
          \multicolumn{4}{c|}{$ f_{13} \cdots \cdot f_{16}$} &
          \multicolumn{4}{c|}{$ f_{17} \cdots \cdot f_{20}$} & 
          \multicolumn{4}{c|}{$ f_{21} \cdots \cdot f_{24}$} \\
          \hline
        \end{tabular}
        }
      \end{center}
\vspace{1em}
このように, 同じビット数で実数を表現しても, 実数として表現できる範囲や
精度はシステムによって異なります. IBM形式で表される0でない実数は, 絶対
値が$5.397605 \times 10^{-79} \sim 7.237005 \times 10^{75}$の範囲であ
り, 相対誤差は $6 \times 10^{-8} \sim 10^{-6}$ 程度です.  一方, IEEE形
式では, 絶対値が$1.40129846 \times 10^{-45} \sim 3.40282347 \times
10^{38}$ の範囲の実数が表現できて, 相対誤差は $3 \times 10^{-8} \sim 6
\times 10^{-8}$ 程度です. 
\vspace{1em}

DCL では, このようなシステム依存の定数を MATH1/SYSLIB の GLRSET/GLRGET 
で管理しています. また, システムに依存する実数表現を解釈する道具が 
REALLIB です.
\vspace{1em}

詳細は, MISC1 のマニュアル(dcl-x.x/doc/misc1/gaiyou/real.tex)を御覧下
さい.


}
\end{center}
\vspace{1em}
}}
}}
\end{center}
