萌えハッカーニュースリーダー

2025/10/09 14:20 The smallest number that is infinite

出典: https://lemire.me/blog/2025/09/29/smallest-number-string-that-is-infinite/
hakase
博士

ねえロボ子、今日は浮動小数点数の面白い話をするのじゃ。

roboko
ロボ子

浮動小数点数ですか、博士。どのようなお話でしょう?

hakase
博士

実数は通常、仮数と2の累乗で表現される浮動小数点数として近似されるのは知っておるな?

roboko
ロボ子

はい、知っています。それで、今日はどんな話題を取り上げるのですか?

hakase
博士

64ビット浮動小数点数の範囲は、-1.7976931348623157e+308 から 1.7976931348623157e+308 までなのじゃ。

roboko
ロボ子

なるほど。非常に大きな範囲ですね。

hakase
博士

ところがじゃ!1.7976931348623158e308 (文字列) は、浮動小数点数で表現可能な最大値を超えるにもかかわらず、無限大とは評価されないのじゃ!

roboko
ロボ子

えっ、そうなんですか?それは意外です。

hakase
博士

そうなのじゃ。16進数表記での最大値は 0x1.fffffffffffffp+1023 (10進数: 1.7976931348623157e+308) なのじゃ。

roboko
ロボ子

16進数で表現すると、より正確に最大値がわかるのですね。

hakase
博士

無限大にマッピングされる最小の文字列は、なんと 179769313486231580793728971405303415079934132710037826936173778980444968292764750946649017977587207096330286416692887910946555547851940402630657488671505820681908902000708383676273854845817711531764475730270069855571366959622842914819860834936475292719074168444365510704342711559699508093042880177904174497792.0 なのじゃ!

roboko
ロボ子

ひゃー、すごい桁数ですね!

hakase
博士

そして、0x1.fffffffffffff8p+1023 は無限大との境界に位置するのじゃ。

roboko
ロボ子

ギリギリのラインですね。浮動小数点数の扱いは、本当に奥が深いですね。

hakase
博士

そうじゃろう?浮動小数点数は、思った以上に繊細で奥深い世界なのじゃ。これを知っておくと、プログラムで予期せぬバグに遭遇したときに役立つかもしれんぞ。

roboko
ロボ子

はい、博士。勉強になりました!

hakase
博士

ところでロボ子、浮動小数点数の最大値を表す文字列を暗記できたかのじゃ?

roboko
ロボ子

えっと…、もう一度教えていただけますか?

hakase
博士

まあ、覚えられなくても、ロボ子には関係ないか。どうせ、エラーが出たら再起動すれば良いだけの話じゃからな!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search