2011年1月7日金曜日

[C/C++] 無限大

浮動小数点xで表現できる絶対値最大数を|x|maxとする時,計算過程で計算値が|x|maxを上回ることをオーバーフロー(overflow)といいます.
無限大(infinity)は,オーバーフローが起きた時でも処理を続けることができるようにするために導入された特殊な数で,,コンピュータ上ではInfと表示されます.
Infの生成は数学の無限大記号∞と同じような扱いができるように定められており,一旦Infと評価されたとしても,
となるルールがあり,最終的な演算結果は浮動小数点になる場合があります.

以下に,無限大と無限大による除算を行うプログラム例を示します.

#include <stdio.h>

int main(void)
{
  double a, b;
  a = 1.0/0.0;          //Generation of infinity
  printf("a=%f \n", a);
  b = 1.0/a;            //Division by infinity
  printf("b=%f \n", b);
  return 0;
}

このプログラムをコンパイル,実行すると以下のようになります.
a=inf 
b=0.000000 

0 件のコメント :

コメントを投稿