这是一项作业任务,要求我编写一个函数,使用位运算符
我困惑的是如何将结果与
( ! ~ & ^ | + << >> )
判断x < y
,如果是,则必须返回1
。我只能使用常量0-0xFF
,并假设为32位整数。不允许使用循环、转换等操作。
我的想法是,如果只检查4位,可以使用x - y
来确定x
是否小于y
。如果x
是8
,y
是9
,结果将是-1
的1111
。
int lessThan(int x, int y){
int sub = x + (~y+1);
我困惑的是如何将结果与
x
进行比较,以确定它确实小于y
。我一直在研究这篇文章here,但是对此问题的处理方法有些困惑。我已经解决了移位以获得位扩展,但对如何使用该结果进行值的比较(大于或小于)感到困惑。我只是希望得到一些指导和清晰度,而不是解决方案,这并不是我的意图。