FC2ブログ
固定小数点 と 浮動小数点
固定小数点と浮動小数点が正直、個人的に履修漏れ。

固定小数点数 - Wikipedia
浮動小数点数 - Wikipedia
固定小数点数とは 【fixed point number】 - 意味・解説 : IT用語辞典
浮動小数点数とは 【floating point number】 - 意味・解説 : IT用語辞典
白兎の実験部屋 コンピュータ入門
コンピュータにおける「データ表現」の基礎(第3回):ITpro



固定小数点と浮動小数点の話はむずかしい。
いや、「固定小数点」と「浮動小数点」の考え方自体はむずかしくない。


そもそも、「固定小数点」と「浮動小数点」とはなんなのだろうか。

OracleのNUMBER型を例に出すと一番わかりやすい。
テーブルの列に代入される値にも型を決める必要がる(C言語の変数の型を決めるのと同じ発想)。OracleのNUMBER型の場合、全部の桁数と小数点以下の桁数を指定する必要ある。

NUMBER(5.1) なら 全部で5桁で小数点以下は1桁
例:1234.5

つまり、NUMBER(5.1)は、
小数点(.)の後ろには1つしか数字をとってはいけいという型を定義している。小数点(.)の後ろにとる数字の個数が固定なので、固定小数点型。


このNUMBERに桁数を教えないで、
単に NUMBER なら 全部で36桁で、小数点(.)の後ろに36(35?)個までなら好きなだけ数字を取れる型を宣言したことになる。
例: 12.3, 123456.7, 12345.67, 123.45678

つまり、小数点の位置が、固定ではなくふらふら浮いたように見えるので浮動小数点と呼ばれる。


この小数点の位置を固定する、つまり、小数点の後ろの数字の個数を固定にするものを「固定小数点」と呼び、小数点の位置を浮動にする、つまり、小数点の後ろに任意個の数字を置けるようにするのを「浮動小数点」と呼ぶということだけである。

# 浮動(ふどう)と不動(ふどう)が同じ発音なので、
# 超混乱するのは俺だけ??


で、じゃあ どうして「固定小数点」と「浮動小数点」の話が超むずかしく感じるのかというと、コンピュータの内部的には小数点を扱うのは、かなりやっかいな仕事のようである。ということで浮動小数点(な型)を実装するのに色んな方式がでてきて(IEEE方式、IBM方式など)、われわれは煙に巻かれる・・・


浮動小数点の議論では、丸め誤差といった話が出てくるのだが、プログラム言語を扱う立場としてはまず、「固定小数点」と「浮動小数点」を以上で述べた意味で理解しておけばよいと思う。

つまり、C言語のdouble型は「浮動小数点」なので、12.3を代入してもよいし、123.567を代入してもよい。さらにその両者を足してもコンパイラに怒られることはない。もし、doubleが「固定小数点」なら 12.3 と 123.567 の足し算はコンパイラーにエラーをはかれるといった解釈でよいと思う。

# まずはの理解としてということなので、
# もっと深くもぐっていく必要はあると思う
スポンサーサイト



C言語で単に浮動小数点といえばfloatだよな!単語のまんまやし・・・
doubleは、正しくは倍精度実数やな!実装は浮動小数点形式だけど

チョットしたツッコミ以上!
2007/08/14 (火) 01:38:34|URL |#-
コメントを投稿する
Name:
URL:
Comment:

秘密:管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL
この記事にトラックバックする(FC2ブログユーザー)
ブログ検索

プロフィール

ビンゴ中西
Perlが好きである。
プログラミング言語のほとんどは独学。独学の過程で多くのプログラム仲間にも色々教わりました。

FC2カウンター

カレンダー

03 | 2021/04 | 05
- - - - 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 -

ブロとも申請フォーム

この人とブロともになる

| ホーム |