1
我正在尝试设置所有位的最低有效位。例如,copyLSB(6)
将产生0x00000000
,而copyLSB(5)
将产生0xffffffff
。C位移不按预期工作
这里是我的代码:
int copyLSB(int x) {
int r = x << 31;
r = x >> 31;
return r;
}
该方案适用于6和5然而,当我输入0x80000000
它失败并返回0xffffffff
。
嗨,大家好,我找到了一种不使用位移的方法,这也适用于有符号数字。
int copyLSB(int x) { │
int result = x & 1; │
return ~(~(x & 0) + result); │
}
请不要在符号值上进行位运算。请。 – 2014-09-20 21:19:15
@LightnessRacesinOrbit这是我的任务的一部分哈哈。 – mrQWERTY 2014-09-20 21:20:06
然后你的任务是教你如何让你从我的团队中被解雇的做法。 – 2014-09-20 21:20:27