HN 日本語サマリー

← 一覧へ戻る
プログラミング

浮動小数点数の代替手段について

More Floating Point Alternatives (wizardzines.com)

18 pointsby vismit200015 コメント

要約

この記事では、コンピュータサイエンスにおける浮動小数点数の表現方法の代替手段を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のような古い形式で今でも時折見られます。