問題タブ [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.

0 投票する
5 に答える
2592 参照

c++ - 32ビットフロートを30ビットにパッキング(c ++)

これが私が達成しようとしている目標です:

  • 32ビットのIEEEフロートを30ビットにパックする必要があります。
  • 仮数のサイズを2ビット小さくしてこれを実行したいと思います。
  • 操作自体は可能な限り高速である必要があります。
  • ある程度の精度が失われることは承知しており、これは許容範囲です。
  • この操作がSNaN、QNaN、無限大などの特殊なケースを台無しにしないのであれば、それは利点です。しかし、私はこれをスピードを超えて犠牲にする準備ができています。

この質問は2つの部分で構成されていると思います。

1)仮数の最下位ビットを単純にクリアできますか?私はこれを試しました、そして今のところそれはうまくいきます、しかし多分私はトラブルを求めています...何かのようなもの:

2)1)が失敗する場合がある場合、これを達成するための最速の方法は何でしょうか?

前もって感謝します

0 投票する
4 に答える
3807 参照

c++ - C ++での浮動小数点数から基数2の科学表記法(IEEE 32ビット)のアルゴリズムまたはコード?

入力として float を取り込んで、基数 2 の科学的表記法で同等の表現を出力しています。これは IEEE 32 ビットで、31 符号ビット、23 ~ 30 指数 (127 オフセットあり)、0 ~ 22 仮数 (暗黙の先行 1 あり) です。

意味がよくわからない条件の 1 つは、「仮数部には暗黙の先頭に 1 を追加する必要がある」というものです。

私が実際に学んだことは、フロートを小数部分と小数部分に分割し、それらのバイナリ表現を別々に取得することだけです。

これを行う方法がわからないので...実際にコーディングすることはできません。そうするための何らかのアルゴリズム、またはコード自体に関するヒントや情報をいただければ幸いです。ありがとう。

サンプル:

編集: 127 オフセットは、過剰な 127 表記を意味しますよね? 私の本には超過 128 しかありませんが、とにかく違いがわかりません...

0 投票する
7 に答える
354 参照

numbers - 「is not a Number」(isNan) 関数があるのはなぜですか?

多くの言語には isNaN() 関数があります。私は自分自身に問いかけています:なぜ数字ではないことを確認するのですか?

理由は純粋に論理的ですか、それとも is a number ではなく not a number をチェックする方が速いです?

これは純粋な理解の問題であることに注意してください。たとえば、 isNumber() 関数を実現するために isNaN() を否定できることを知っています。ただし、番号ではない
ことを確認する理由を探しています。

0 投票する
4 に答える
4979 参照

assembly - IEEE float hex を 10 進数に変換しますか?

IEEE float hex 42F6E979 がある場合、どうすればそれを 10 進数に変換できますか? 小数表現は = 123.456001 だと思います

0 投票する
3 に答える
1349 参照

floating-point - 倍精度値の演算で期待どおりの結果が得られないのはなぜですか?

2.14656

0.14656000000000002

なんてこと?

0 投票する
5 に答える
2456 参照

java - 最小の増分でdoubleを変更する方法

何かが壊れているか、何が起こっているのか理解できませんか?

出力あり:

0 投票する
7 に答える
3784 参照

c++ - double 定数を 16 進数として定義しますか?

1.0 未満の最も近い数値を浮動小数点として使用したいと考えています。IEEE-754に関するウィキペディアの記事を読むことで、1.0 のバイナリ表現が であることを確認できた3FF0000000000000ので、最も近い double 値は実際には0x3FEFFFFFFFFFFFFFです。

このバイナリ データで double を初期化する唯一の方法は次のとおりです。

これは、使用するのがかなり面倒です。

可能であれば、この倍数を定数として定義するより良い方法はありますか?

0 投票する
1 に答える
2317 参照

c++ - 浮動小数点標準間の変換

IEEEベースの浮動小数点数をMIL-STD1750A浮動小数点数に変換しようとしています。

両方の仕様を添付しました: 代替テキスト

ウィキペディアの例に従って、浮動小数点12.375をIEEE形式で分解する方法を理解しています。

ただし、MIL-STDの解釈が正しいかどうかはわかりません。

12.375 =(12)b10 +(0.375)b10 =(1100)b2 +(0.011)b2 =(1100.011)b2(1100.011)b2 = 0.1100011 x 2 ^ 4 =>指数、E=4。

正規化された2の補数の4は=(100)b2=指数です

したがって、MIL-STD1750A32ビット浮動小数点数は次のとおりです。

私の上記の解釈は正しいですか?

-12.375の場合、スワップするのは符号ビットだけですか?すなわち:

それとも、小数部分で何かファンキーなことが起こりますか?

0 投票する
1 に答える
301 参照

standards - IEEE 倍精度

標準 IEEEDoublePrecision
標準で表示される最大値と最小値は? どうですか?

0 投票する
2 に答える
885 参照

ms-access - VBA での IBM 浮動小数点乗算/加算のエミュレート

Access 2003 または Access 2010 環境で (存在しない) メインフレーム レポート ジェネレーターをエミュレートしようとしています。生成されるデータは、70 年代初頭の紙のレポートと正確に一致する必要があります。残念ながら、初期のデータは、IEEE ではなく IBM の浮動小数点表現を使用するハードウェアで実行されていました。Google の助けを借りて、浮動小数点数を 10 進数から IEEE 754 32 ビット バイナリ形式に変換する VBA 関数のライブラリを見つけました。32 ビットまたは 64 ビットの浮動小数点数を受け入れるようにライブラリを変更する必要があったため、浮動小数点形式についてはある程度の実用的な知識がありますが、IEEE から IBM バイナリ形式への変換に問題があり、乗算と加算にも問題があります。 IBM または IEEE 番号のいずれかです。

VBA でこの変換と算術演算を実行するための他のライブラリを見つけていません - これを行う簡単な方法、または見つけていない既存のライブラリはありますか? それができない場合、関連するアルゴリズムの明確で率直な説明はありますか?

前もって感謝します。