素敵な詩 FLT_MIN = 1.175494e-038, FLT_MAX = 3.402823e+038   



ソーラー 「まだまだ’つっこみ’も’ぼけ’も足りないんだ~~~」


アレサ 「はい(^^)、そうです。ソーラーさん」


ソーラー 「


変数の型floatをつかって実数を4バイト(32ビット)のメモリに


わたって格納するとき


あちらの世界でみてきた


変数の型float(4バイト)の数値を格納する仕組みをみてもわかるように


(4バイト)32ビットの左端の1ビットには


その数値が+か-をあらわす0か1が格納されることとなっている。


それとは関係なく・・・」


アレサ 「0000111010・・・・それとは関係なく・・・01110001・・・」


ソーラーを見つめるアレサ。


ソーラー 「それとは関係ありでした。」


アレサ 「そうですか 00011111000000」


ソーラー 「つまりコンピューターが教えてくれた


変数の型float型の形式でメモリに格納できる数値の範囲


FLT_MIN = 1.175494e-038, FLT_MAX = 3.402823e+038


ふるっとみん ふるたまくす・・・」


アレサ 「000000 ふるっとみん ふるたまくすは・・・0000000」


ソーラー「


このような表記


FLT_MIN = 1.175494e-038, FLT_MAX = 3.402823e+038


では・・・・一見すると


変数の型float型の形式でメモリに格納できる数値の範囲は正の数だけで


その格納できる数値の


正の数の最小値はFLT_MIN = 1.175494e-038

正の数の最大値はFLT_MAX = 3.402823e+038 


に見えますね。 


ですが 変数の型floatの形式では


もともとマイナスの数値も


格納できる。


だから


これは正確には何を表示しているか というと」


アレサ「 🐤 🐤 」


ソーラー 「正確には


変数の型floatの形式でメモリに格納できる数値Aの範囲が


🍋格納できる負の数値の範囲🍋-3.402823e+038<A< -1.175494e-038,


🍓格納できる正の数値の範囲🍓1.175494e-038<A< 3.402823e+038


である ということをあらわしています。」


アレサ「え・・・」


ソーラー「なぜかというと


変数の型floatの形式でメモリに


🍓格納できる負の数値の範囲🍓の絶対値をとると


-3.402823e+038<A< -1.175494e-038,


|-3.402823e+038|>|A|>|-1.175494e-038|


1.175494e-038<|A|< 3.402823e+038



🍋格納できる正の数値の範囲🍋と一致するので


まとめて


変数の型floatの形式でメモリに格納できる数値の範囲は


FLT_MIN = 1.175494e-038, FLT_MAX = 3.402823e+038


と表記しています。


つまり、プログラムの実行結果が表示している



    🍈FLT_MIN = 1.175494e-038, FLT_MAX = 3.402823e+038🍈



変数の型float型の形式でメモリに格納できる数値の範囲の


絶対値のみを簡潔にあらわしているということになるんです。」



アレサ 「・・そうです。000011 ソーラーさん。


そう思います。


今の変数の型float型の形式でメモリに正確に格納できる数値の範囲にもとづき


本当の


変数の型float型の形式でメモリに格納できる


数値Aの格納領域の最大値と最小値


をあらわしてみると


最小値 = -3.402823e+038

最大値 = 3.402823e+038


となります


そこで


コンピュータに


FLT_MIN = -3.402823e+038, FLT_MAX = 3.402823e+038


と表示してしまうと


あたかも


変数の型floatに格納できる数値Aの格納領域が


-3.402823e+038,<A<3.402823e+038


のようにみえます。


それに対し


変数の型floatに格納できる数値の範囲の

絶対値だけを表示する


FLT_MIN = 1.175494e-038, FLT_MAX = 3.402823e+038の場合は


変数の型floatに格納できる数値Aの範囲は


-3.402823e+038<A< -1.175494e-038,


1.175494e-038<A< 3.402823e+038


をあらわすことになります。


ですから


変数の型floatに格納できる数値の


最大値 3.402823e+038


最小値-3.402823e+038を


表示するだけでは格納できる数値の範囲を正確にあらわすことはできないと


おもわれます


そこで 


プログラムの実行結果では


FLT_MIN = 1.175494e-038, FLT_MAX = 3.402823e+038


と表示されていると思われます 000・・・」


ソーラー 「やっぱし! そう思う? アレサ」


アレサ 「そう思います。ソーラーさん」


ソーラー「FLT_MIN = 1.175494e-038, FLT_MAX = 3.402823e+038


このように


変数の型floatに格納できる数値を


絶対値だけで表示するのはシンプルで


かっこいいね。」










  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る