演算子のみを使用して、32ビット整数(最上位ビット)の符号ビットを見つける方法が必要です。〜&^ | +。0xFFまでの定数しか使用できませんが、それより大きな数を作成できます。そしてそれはインラインコードでなければならず、ループや条件文はありません
はい、これは割り当て用ですが、これは全体の問題ではなく、確認する必要があるマイナーなケースにすぎません。
除算を使用して実行できるx>>31を実行することで符号を取得できることはわかっていますが、それは、使用できないビットシフトを増やす必要があるだけです:(
演算子が少なければ少ないほど良いのです。なぜなら、私は問題全体を実行するのに10しか許可されておらず、これはマイナーなケースにすぎないからです。
これの問題は、数値xが0x7FFFFFFFに等しいかどうかを確認することです。私のコードが今読む方法は[(xは負ですか?)&(x + 1は負です)]です。xが0x7FFFFFFFに等しい場合、1を加算するとバッファがオーバーフローし、xが負になります。ただし、このロジックは、xが事前に負でない場合にのみ機能します。したがって、最初の部分。
お願い助けて???