パフォーマンス エンジニアリングに関連する mit のオープン コースウェアを調べていました。
2 つの数値 (x と y など) の最小値を見つけるための最も迅速な方法 (必要なクロック サイクル数が最小) は、次のように記述されています。
min= y^((x^y) & -(x<y))
式 x < y の出力は 0 または 1 (C が使用されていると仮定) になり、その後 -0 または -1 に変化します。xor を使用して 2 つの数値を交換できることを理解しています。
質問: 1. 2 進法の観点から、-0 は 0 および -1 とどう違うのですか? 2. 最小値を取得するために、その結果を and 演算子でどのように使用しますか?
前もって感謝します。