プログラミング
浮動小数点数の代替手段について
More Floating Point Alternatives (wizardzines.com)
要約
この記事では、コンピュータサイエンスにおける浮動小数点数の表現方法の代替手段を5つ紹介しています。これらはソフトウェア実装のためハードウェア実装より遅いですが、十進浮動小数点数、分数、記号計算、区間演算、BCD(Binary-Coded Decimal)といった方法があります。それぞれの特徴と、PythonやMathematicaなどの具体的な例が挙げられています。
全文翻訳
私のジン(Zine)「整数と浮動小数点数の仕組み」からのプレビューです!このようなコミックをもっと見たい場合は、土曜日のコミックニュースレターに登録するか、他のコミックをご覧ください!
ジンを入手する!
トランスクリプトを読む!
浮動小数点数の代替手段について
数値を表現するための多くの代替方法があります
これらはすべてソフトウェア(ハードウェアではない)で実装されているため、はるかに遅く、異なる言語には異なるライブラリがあります。
代替手段 1: 十進浮動小数点数
これは通常の浮動小数点数に似ていますが、基数が2ではなく10です。IEEE 754でも標準化されています。
例: PythonのdecimalモジュールまたはJavaのBigDecimal
代替手段 2: 分数
これにより、分数で正確な計算ができます(1/10 + 2/10 = 3/10)。
例: 標準ライブラリのPythonのfractionsモジュール、Lispにはファーストクラスのサポートがあります。
代替手段 3: 記号計算
例えば、1.414の代わりにsqrt(2)です。Mathematica、Maple、sympyのようなコンピュータ代数システムで見られます。
代替手段 4: 区間演算
このアイデアは、すべての数値を範囲として格納し、誤差範囲を正確に追跡できるようにすることです。おそらくこれらの代替手段の中で最も主流ではありません。
代替手段 5: 2進化10進数 (Binary-Coded Decimal)
これは、60年代のIBMコンピュータで浮動小数点数(および整数)がどのように格納されていたかであり、金融取引のISO 8583のような古い形式で今でも時折見られます。
浮動小数点数の代替手段について
数値を表現するための多くの代替方法があります
これらはすべてソフトウェア(ハードウェアではない)で実装されているため、はるかに遅く、異なる言語には異なるライブラリがあります。
代替手段 1: 十進浮動小数点数
これは通常の浮動小数点数に似ていますが、基数が2ではなく10です。IEEE 754でも標準化されています。
例: PythonのdecimalモジュールまたはJavaのBigDecimal
代替手段 2: 分数
これにより、分数で正確な計算ができます(1/10 + 2/10 = 3/10)。
例: 標準ライブラリのPythonのfractionsモジュール、Lispにはファーストクラスのサポートがあります。
代替手段 3: 記号計算
例えば、1.414の代わりにsqrt(2)です。Mathematica、Maple、sympyのようなコンピュータ代数システムで見られます。
代替手段 4: 区間演算
このアイデアは、すべての数値を範囲として格納し、誤差範囲を正確に追跡できるようにすることです。おそらくこれらの代替手段の中で最も主流ではありません。
代替手段 5: 2進化10進数 (Binary-Coded Decimal)
これは、60年代のIBMコンピュータで浮動小数点数(および整数)がどのように格納されていたかであり、金融取引のISO 8583のような古い形式で今でも時折見られます。