ビット操作で困っています。
行うこと: x の最上位ニブルの 16 進値が y に等しい (0 <= y <= 15 と仮定)
制限: 等式 (==) または不等式 (!=) テスト、相対比較演算子、除算、モジュラス、および乗算、条件を使用することはできません。
問題: msb = y の場合は 1 を返し、そうでない場合は 0 を返すように関数を作成する必要があります。ただし、0xff で実行してもゼロになり続けます。誰かが私を正しい方向に向けることができれば、それは素晴らしいことです. ありがとうございました。
int sig_nib(int x, int y){
int shifright = x >> 27;
int result = shifright & y;
return (result ^ y);
}