我需要一种仅使用运算符在 32 位整数(最高有效位)中查找符号位的方法!~ & ^ | +。我只能使用最大为 0xFF 的常量,但可以构造更大的数字。它必须是内联代码,没有循环或条件
是的,这是一个作业,但这不是全部问题,它只是我需要检查的一个小案例。
我知道我可以通过执行 x>>31 来获得符号,这可以使用除法来完成,但这只会导致需要更多我无法使用的位移:(
操作员越少越好,因为我只允许 10 人完成整个问题,这只是一个小案例。
这是为了检查数字 x 是否等于 0x7FFFFFFF。我的代码现在读取的方式是 [(is x neg?) & (is x+1negative)]。如果 x 等于 0x7FFFFFFF 然后加 1 将溢出缓冲区导致 x 变为负数。但是这个逻辑只有在 x 事先不是负数的情况下才有效。因此是第一部分。
请帮帮我???