問題タブ [absolute-value]
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.
matlab - whileループ式の実部の絶対値
while ループ式がいつ満たされるのか疑問に思っています。エラーは[1x1551] complex double
. 1 つの値が式を満たすとループが停止します(abs(real(err))>1e-4)
か? または、配列内のすべての値が式を満たす場合。関数は、増加するにつれて定数に向かって変換されていますp
bitwise-operators - ビット演算による絶対値の計算方法
ハッカーの喜びに、x
asの絶対値を計算する例があります(х XOR (x >> 31)) - (x >> 31)
。
x >> 31
の符号を返すことは知っていますx
。ブール代数は理解できますが、どのように機能し(х XOR (x >> 31)) - (x >> 31)
ますか?
java - 絶対値ジャバ
String クラスの組み込みの hash() メソッドを使用して、ハッシュされた URL の 16 進数バージョンの絶対値の名前でディレクトリを作成しようとしています。hash() が否定的な結果を生成する可能性があり、マイナス記号で始まるディレクトリ名は処理がやや難しいため、これの絶対値が必要です。ただし、ハッシュされた URL 文字列の 16 進数バージョンの絶対値を取得する方法がわかりません。
assembly - アセンブリ変換を簡素化する方法 32 Xor 絶対数と値を右にシフト
元のコードはわかりませんが、右シフトと腹筋でこれほど複雑だとは思いません。
これは、名前が変更された逆コンパイルされたIDA PROコードがどのように見えるかです
これがIDEOneテストですhttp://ideone.com/Q2bEjU
私NewShip = abs(frequency) & 7);
が本当に必要としているのはそれだけのようです。ループしてすべての可能性をテストしたようです。
別の逆コンパイラでこの結果が得られました
これには右シフトがないか、私にはまだ異質に見えますが、おそらく絶対数がどのように機能するかを示しており、右シフト32がどこから来たのかまだ手がかりがありません.
周波数NumberToFrequency
を船と同じにすることを想定していますが、もちろん周波数は7を超えているため、残りの値はまだ船の値に変換されるはずなので、モジュラス%
は7であると想定しています.
しかし、なぜこのような複雑なコードがまったく別の意味を持っているのでしょうか? コードの意味を尋ねているだけです。以下にアセンブリコードを追加します。下のアセンブリには Shift right 32 さえ見つかりませんが、同じ場所にあると確信しています。
編集:私は自分で答えを見つけました.シフト32>> 32
は、32ビットDWORDまたはそのようながらくたに一致するタイプの古いCコンパイルサポートのために追加された役に立たないガベージであるようです.
c++ - C++ の "float" に代わる高速な fabsf はありますか?
ベンチマークを行っているところですfabsf()
が、多くの場合、 よりも 10 倍遅いことがわかりましたfabs()
。だから私はそれを逆アセンブルし、バージョンは命令double
を使用していることがわかりましたが、バージョンはそうではありません。これは改善できますか?これは高速ですが、それほど多くはなく、機能しない可能性があるのではないかと心配しています。少し低レベルすぎます。fabs
float
編集:コンパイラを忘れて申し訳ありません-私はまだ古き良きVS2005を使用しており、特別なライブラリはありません。
c++ - この関数は、NOT および AND 演算を使用して float の絶対値をどのように計算しますか?
次のコード スニペットがどのように機能するかを理解しようとしています。このプログラムは、SIMD ベクトル命令 (Intel SSE) を使用して、4 つの float の絶対値を計算します (基本的に、ベクトル化された「fabs()」関数)。
スニペットは次のとおりです。
プログラムを自分で実行してテストしたので、動作することがわかりました。g++ 4.8.2 でコンパイルすると、結果は次のようになります。
3 つの (関連する) 質問が私を困惑させます。
まず、ビットごとの関数を取得して float に適用することはどのように可能でしょうか? バニラ C++ でこれを試してみると、これは整数型に対してのみ機能することがわかります (これは理にかなっています)。
しかし、第二に、さらに重要なことは、どのように機能するのかということです。NOT と AND を取ることは、ここでどのように役立ちますか? 整数型を使用して Python でこれを試すと、期待どおりの結果が得られます。任意の整数 AND -1 (これは 0 ではありません) は、単純にその数値を返しますが、符号は変更しません。では、ここでどのように機能しますか?
第 3 に、NAND 演算に使用する float の値 (3 つの ??? でマーク) を -0.0 から 0.0 に変更すると、プログラムが絶対値を返さなくなることに気付きました。しかし、-0.0 はどのように存在し、どのように役立つのでしょうか?
参考文献: