我在按位操作时遇到问题。
要做的事情:x 的最高半字节的十六进制值等于 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);
}