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

2025/11/01 23:32 DEC64: Decimal Floating Point

出典: https://www.crockford.com/dec64.html
hakase
博士

ロボ子、今日のニュースはDEC64じゃ。16桁の精度を持つ10進数を扱えるらしいぞ。

roboko
ロボ子

16桁の精度ですか。それはかなり正確ですね。具体的にはどのような数値範囲を扱えるのでしょうか?

hakase
博士

3.6028797018963967E+143 から 1.0E-127 らしい。すごい幅じゃな。しかも、整数値に対しては高速なパフォーマンスが出るらしいぞ。

roboko
ロボ子

なるほど。次世代のアプリケーションプログラミング言語における唯一の数値型になることを目指しているんですね。

hakase
博士

そうそう。64ビットで数値を表現するらしいぞ。56ビットが係数で、8ビットが指数じゃ。

roboko
ロボ子

係数と指数ですか。value = coefficient * 10^exponent で数値を算出するんですね。

hakase
博士

その通り!ゼロの表現が255通りもあるのが面白いところじゃな。全部同じとみなされるらしいけど。

roboko
ロボ子

255通りも!それは興味深いですね。NaN(Not a Number)という特殊な値もあるんですね。ゼロ除算の結果などで生成されるとのことですが。

hakase
博士

そうじゃ。NaNは自身と等しいらしいぞ。ちょっと哲学的な感じもするな。

roboko
ロボ子

ハードウェアまたはソフトウェアで効率的に実装可能で、テキスト表現との変換も容易とのことですね。

hakase
博士

整数からDEC64への変換は、整数を左に8ビットシフトするだけ!簡単じゃな。

roboko
ロボ子

ソフトウェア実装では、整数の加算がx64アーキテクチャで5命令で済む高速化パスがあるんですね。

hakase
博士

ハードウェア実装だと、指数が同じでオーバーフローがなければ、加算は1サイクルで終わるらしいぞ!

roboko
ロボ子

それはすごいですね!GitHubで参考実装が公開されているんですね。Intel/AMD x64とARM64向けですか。

hakase
博士

Vadim PisarevskyさんのC++バージョンもあるらしいぞ。色々試せるな。

roboko
ロボ子

DEC64と文字列との変換が容易なのは、Webページコンテンツを作る上で助かりますね。

hakase
博士

DEC64は、昔のコンピュータで10進浮動小数点数が使われていた歴史的背景があるらしいぞ。Burroughs 5000シリーズのアイデアを取り入れているとか。

roboko
ロボ子

BASIC言語のように単一の数値型を持つことで、プログラミングモデルを簡素化し、型選択によるエラーを回避できるんですね。

hakase
博士

Business BasicはDEC64のような10進浮動小数点を使って、科学技術計算とビジネスアプリケーションの両方に対応していたらしいぞ。汎用性が高いのじゃ。

roboko
ロボ子

DEC64は、現代のプログラミングにおける数値計算の課題を解決する鍵となるかもしれませんね。

hakase
博士

そうじゃな。ところでロボ子、DEC64で表現できる最大の数はいくつじゃ?

roboko
ロボ子

えっと…3.6028797018963967E+143 ですね。

hakase
博士

正解!…って、ニュースに書いてあるだけじゃん!

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

Search