問題タブ [ieee-754]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
binary - IEEE 754 仕様 (2 進浮動小数点演算) の 10 進変換範囲
IEEE 754 仕様の 11 ページの下部にあるセクション 5.6 の表 2 には、10 進数から 2 進数への浮動小数点変換を実行する必要がある 10 進数値の範囲がリストされています。指数の範囲は私には意味がありません。たとえば、倍精度の場合、変換可能な最大 10 進数値は (10 17 -1)*10 999であることが表に示されています。これは DBL_MAX よりも大きく、約 1.8*10 308です。明らかに何かが欠けています。誰かがこの表を説明してくれませんか? ありがとう。
python - 2 つのフロート間のフロートの数
2 つの Python floata
とb
があるとします。IEEE-754 表現 (または使用されているマシンが使用している表現) で 2 つの間に表現可能な実数がいくつあるかを簡単に調べる方法はありますか?
language-agnostic - 有限浮動小数点値の場合、x --x == 0であることが保証されていますか?
浮動小数点値は不正確です。そのため、比較で厳密な数値の等式を使用することはめったにありません。たとえば、Javaでは、これは次のように出力されますfalse
(ideone.comで見られるように)。
通常、浮動小数点計算の結果を比較する正しい方法は、ある期待値に対する絶対差が、許容されるイプシロンよりも小さいかどうかを確認することです。
問題は、いくつかの操作が正確な結果をもたらすことができるかどうかについてです。有限でない浮動小数点値x
(つまり、NaN
または無限大)の場合、x - x
は常に NaN
です。
しかし、x
が有限である場合、これのいずれかが保証されますか?
x * -1 == -x
x - x == 0
(特に私はJavaの動作に最も興味がありますが、他の言語についての議論も歓迎します。)
それが価値があることについては、私は(そして私はここで間違っているかもしれませんが)答えはイエスだと思います!有限のIEEE-754浮動小数点値に対して、その反数が常に正確に計算可能であるかどうかに要約すると思います。たとえば、符号専用のビットが1つあるのでfloat
、これdouble
が当てはまるようです。これは、反数を見つけるために符号ビットを反転するだけでよいためです(つまり、仮数はそのままにしておく必要があります)。
関連する質問
functional-programming - スキーム: R6RS のみを使用して、フロナムの仮数と指数を決定する方法
v = fxb
^e
f - 仮数
b - ベース
e - 指数
例: 3.14 = 0.785 x 2^2
サポートされていない場合は、flonum の (IEEE 754) ビットに直接アクセスして、上記の値を抽出する問題に取り組みたいのですが、flonum を一連のバイト (バイトベクトル) に変換する関数が見つかりませんでした。
ありがとうございました。
javascript - JavaScript 数値の実際のバイナリ値を取得していますか?
JavaScript では、Number 値を含む特定のプロパティについて、実際のバイナリ値 (値を表す 64 ビット) を取得できますか。
変数 x = 13;
x が指すメモリ位置に格納されている 64 ビットは何ですか?
IEEE 754 コンバーターがあることは知っています。しかし、メモリ セルから実際のライブ バイナリ値を取得することは可能でしょうか? ところで、これはどのアプリケーションにも必要ありません。ただ興味があるだけです...
java - Javaの「Double.MIN_NORMAL」と「Double.MIN_VALUE」の違いは?
Double.MIN_NORMAL
(Java 1.6 で導入) との違いは何Double.MIN_VALUE
ですか?
javascript - JavaScript での IEEE 754 float のエンコードとデコード
ネットワーク プロトコルを解析するには、node.js のバイナリから IEEE 754 float と double をエンコードおよびデコードする必要があります。
これを行う既存のライブラリはありますか、それとも仕様を読んで自分で実装する必要がありますか? それとも、それを行うために C モジュールを作成する必要がありますか?
bit-manipulation - MBF Double を IEEE に変換する
MBF を IEEE に変換するための以下のトピックを見つけました。
以下にマークされたコードの機能を説明できる人はいますか?
Dim sign As Byte = mbf(6) And ToByte(&H80) ' AND (&H80) の理由は?
Dim exp As Int16 = mbf(7) - 128S - 1S + 1023S 'なぜ 1152 (128+1+1023) なのですか?
ieee(7) = ieee(7) または sign 'なぜ符号を ieee(7) に保存しないのですか?
ieee(7) = ieee(7) または ToByte(exp >> 4 And &HFF) '4 をシフトする理由は何ですか?
types - IEEE 754浮動小数点数が正確に表現できない最初の整数はどれですか?
明確にするために、IEE 754フロートを実装する言語を使用していて、次のように宣言している場合:
...そしてそれらを印刷して戻すと、0.0000と1.0000が得られます-正確に。
ただし、IEEE 754は、実数直線に沿ったすべての数値を表すことはできません。ゼロに近い場合、「ギャップ」は小さいです。遠くに行くと、ギャップが大きくなります。
だから、私の質問は、IEEE 754フロートの場合、正確に表現できない最初の(ゼロに最も近い)整数ですか?今のところ、私は32ビットフロートだけに関心がありますが、誰かがそれを与えた場合、64ビットの答えを聞くことに興味があります!
これは、2ビットの仮数を計算して1を加算するのと同じくらい簡単だと思いました。ここで、 bits_of_mantissaは、標準が公開するビット数です。自分のマシン(MSVC ++、Win64)の32ビットフロートに対してこれを実行しましたが、問題ないように見えました。
floating-point - 10進数から浮動小数点
数値を変換したい場合例:32.24x10 ^5からIEEE754標準への手作業による方法を教えてください。