問題タブ [negative-number]
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.
javascript - 配列の構築と負の数
javascript でルーティング アルゴリズムを実装していましたが、配列に負の 1 変数を割り当てると、次のエラーが表示されます: 配列の長さが無効です。
このエラーを解決する方法がわかりません。
floating-point - 負のゼロを処理しながら 2 つの浮動小数点値の符号を効率的に比較する方法
2 つの浮動小数点数が与えられた場合、2 つの値のいずれかがゼロ (+0.0 または -0.0) である場合、同じ符号を持っていると見なす必要があるため、それらが同じ符号を持っているかどうかを確認する効率的な方法を探しています。サイン。
例えば、
- SameSign(1.0, 2.0) は true を返す必要があります
- SameSign(-1.0, -2.0) は true を返す必要があります
- SameSign(-1.0, 2.0) は false を返す必要があります
- SameSign(0.0, 1.0) は true を返す必要があります
- SameSign(0.0, -1.0) は true を返す必要があります
- SameSign(-0.0, 1.0) は true を返す必要があります
- SameSign(-0.0, -1.0) は true を返す必要があります
SameSign
C++での単純だが正しい実装は次のようになります。
IEEE 浮動小数点モデルを想定すると、分岐のSameSign
ないコードにコンパイルされるバリアントを次に示します (少なくとも Visual C++ 2008 では)。
次のようにbinary_cast
定義されています。
私は2つのことを探しています:
SameSign
ビット トリック、FPU トリック、さらには SSE 組み込み関数を使用した、より高速で効率的な の実装。SameSign
3 つの値への効率的な拡張。
編集:
SameSign
の3つのバリアント(元の質問で説明されている2つのバリアントとスティーブンのバリアント)でパフォーマンス測定を行いました。各関数は、-1.0、-0.0、+0.0、および +1.0 でランダムに埋められた 101 個の float の配列内のすべての連続する値のペアに対して、200 ~ 400 回実行されました。各測定は 2000 回繰り返され、最小限の時間が維持されました (すべてのキャッシュ効果とシステムによるスローダウンを除外するため)。コードは、Visual C++ 2008 SP1 でコンパイルされ、最大限の最適化と SSE2 コード生成が有効になっています。測定は Core 2 Duo P8600 2.4 Ghz で行われました。
配列から入力値をフェッチし、関数を呼び出して結果を取得するオーバーヘッドをカウントしないタイミングを次に示します (これは 6 ~ 7 クロックティックになります)。
- 単純なバリアント: 15 ティック
- ビットマジックバリアント:13ティック
- Stephens のバリアント: 6 ティック
c++ - 符号なしの負のプリミティブ?
C ++では、プリミティブを作成できますunsigned
。しかし、彼らは常に前向きです。符号なしの負の変数を作成する方法もありますか?unsignedという単語は「符号なし」を意味するので、マイナス(-)記号でもありません。しかし、C++がそれを提供しなければならないと思います。
perl - Perlの文字列から負の数を解析します
Perlの文字列から負の数を解析するにはどうすればよいですか?私はこのコードを持っています:
それは私に与えます5
、しかし私は持っている必要があります3
。どうすればいいのですか?
javascript - 数値が負かどうかを確認する方法は?
数値が負かどうかを確認したい。最も簡単な方法を探しているので、定義済みの JavaScript 関数が最適ですが、まだ何も見つかりませんでした。ここに私がこれまでに持っているものがありますが、これは良い方法だとは思いません:
javascript - javascriptで-1を1に変換する方法は?
javascriptで-1を1に変換する方法は?
また
結果は
c++ - 乱数と負の数
[-100;の範囲で数値を生成する必要があります。+2000] c++ で。利用可能な正の数しかない場合、どうすれば rand でこれを行うことができますか? 速い方法はありますか?
python - Pythonでの負の数のモジュロ演算
Pythonで、負の数に関して奇妙な動作を見つけました。
誰かが何が起こっているのか説明できますか?
c - Cでの負の数の表現?
Cは負の整数をどのように表しますか?
2の補数表現によるものですか、それともMSB(最上位ビット)を使用したものですか?
-1
16進数ではffffffff
。
だから私のためにこれを明確にしてください。
java - Javaは負の数でモジュラス計算をどのように行いますか?
モジュラスを間違っていますか?なぜならJavaでは-13 % 64
評価します-13
が私は取得したいからです51
。