不動小数点とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > 不動小数点の意味・解説 

浮動小数点数

(不動小数点 から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/03/10 04:44 UTC 版)

浮動小数点数(ふどうしょうすうてんすう、: floating-point number)は、実数コンピュータで処理(演算や記憶、通信)するために有限桁の小数で近似値として扱う方式であり[1]、人間が多く用いる10進数での数値の計算や表記に加えて、コンピュータの数値表現で多く用いる2進数の数値でも採用されている。多くの場合、符号部、固定長の指数部、固定長の仮数部、の3つの部分を組み合わせて、数値を表現する。

概要

この節はパターソンらの記述に基づく[1]

実数は0以上かつ1以下のような有限の範囲でも、無限個の値(種類)が存在するため、コンピュータでは妥当なビット数で有限個の値(種類)の近似値で扱う必要がある。

実数-1/3は10進数表現では無限小数となるが、有限桁の小数で近似値を表記できる。下の例では10進数での4桁としている。

-1/3
-1 x 0.33333333333333...
-1 x 0.3333 x 100
-1 x 3.333 x 10-1

下の2つの表記は科学記数法 (scientific notation) とよばれ、小数点より左側の整数部分を1桁とする。 科学記数法のうち、仮数部の最上位の桁が0以外(10進表記では1から9)であるものを、正規化数 (normalized number) とよび、 上記の最後の表示が該当する。科学記数法も、10進数表記での浮動小数点数である。

実数-1/3はまた、2進数でもその近似値を有限桁の小数で表記できる。下の例では2進数17桁としている。

-1/3
-1 x 0.01010101010101010101010101010101...
-1 x 0.0101010101010101
-1 x (2-2 + 2-4 + 2-6 + 2-8 + 2-10 + 2-12 + 2-14 + 2-16)
-1 x (1/4 + 1/16 + 1/64 + 1/256 + 1/1024 + 1/4096 + 1/16384 + 1/65536)
-0.333328247(近似値の10進数表記)

2進数の小数も科学記数法で表記できる。

-1 x 0.0101010101010101 x 20
-1 x 0.101010101010101 x 2-1
-1 x 1.01010101010101 x 2-2

上記は同じ値を、小数点の位置を移動し異なる表記にしているため、2進数表記での浮動小数点と呼ばれる。一番下の表記は、正規化数である。

コンピュータ内部での演算処理に最も適した浮動小数点数の表現は基数2であり、符号 (sign) S、仮数 (significand) F、指数 (exponent) Eにより下記の式で表記できる。

(-1)S x F x 2E

数値に対する演算をあまり行なわずに数値を格納したり比較をする場合,あるいは演算が10進数でなければ正しく表せないような(お金の計算などの)用途では,計算機内部で10進数表現が 用いられる場合がある。

浮動小数点数のフォーマット

浮動小数点数のフォーマットには、以下で説明するものの他、以前は多数あった。

  • IEEE方式(IEEE 754。最も広く採用されている標準規格
  • IBM方式(IBMのメインフレームおよびそれを模倣した各社の互換マシンで使われていた。指数部を基数16で表現するのが特徴)
  • 指数部と仮数部を可変とする方式(これは研究用の面が強い。以下の該当する節で詳述)

IEEE方式(IEEE 754 形式)

単精度浮動小数点数型式
sign:符号部、exponent:指数部、fraction:仮数部
倍精度浮動小数点数型式

IEEE 754 形式の

  • 半精度浮動小数点数では、符号部 1 ビット ・ 指数部 5 ビット ・ 仮数部 10 ビット
  • 単精度浮動小数点数では、符号部 1 ビット ・ 指数部 8 ビット ・ 仮数部 23 ビット
  • 倍精度浮動小数点数では、符号部 1 ビット ・ 指数部 11 ビット ・ 仮数部 52 ビット
  • 四倍精度浮動小数点数では、符号部 1 ビット ・ 指数部 15 ビット ・ 仮数部 112 ビット

で表現されている。各部は次のように定義されている。

  • 符号部は、 0 を正、1 を負とする
  • 仮数部は、整数部分が 1 であるような2進小数の小数部分(ケチ表現)を表す
  • 指数部は、符号なし2進整数とし、半精度では 15、単精度では 127、倍精度では 1023、四倍精度では 16383 のゲタを履かせたゲタ履き表現で表す

つまり、IEEE 754 形式で表現する値は

半精度の場合: (−1)符号部 × 2指数部 − 15 ×(1 + 仮数部)
単精度の場合: (−1)符号部 × 2指数部 − 127 ×(1 + 仮数部)
倍精度の場合: (−1)符号部 × 2指数部 − 1023 ×(1 + 仮数部)
四倍精度の場合: (−1)符号部 × 2指数部 − 16383 ×(1 + 仮数部)

である。

ただし、IEEE 754 形式の指数部は複雑で、以下のような役割も持つ。

  • 通常の浮動小数点数(正規化数)を表現するのは、指数部が単精度で 254 ~ 1(127 ~ −126)、倍精度で 2046 ~ 1(1023 ~ −1022)の範囲のときである
  • 指数部が、単精度の場合 255(128)、倍精度の場合 2047(1024)のとき:
    仮数部が 0 以外の場合は、非数(NaN; Not a Number)を表す
    仮数部が 0 の場合は、符号部が 0 のときは正の無限大、符号部が 1 のときは負の無限大を表す
  • 指数部が 0(単精度の場合 −127、倍精度の場合 −1023)のとき:
    非正規化数
  • 指数部、仮数部ともに 0 のときは ±0 を表す

0 を 0 で割ろうとすると NaN になる。また、

外部リンク

  • 浮動小数点演算について (1991 年 3 月発行の "Computing Surveys" に掲載された "Every Computer Scientist Should Know About Floating-Point Arithmetic" 稿 (David Goldberg著) を再編集したもの)



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

カテゴリ一覧

すべての辞書の索引



Weblioのサービス

「不動小数点」の関連用語



不動小数点のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



不動小数点のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの浮動小数点数 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS