我需要检查一个数字是否在一个给定的范围内包含,我所用的代码除了当所有三个数字相同时。我应该得到1而不是0。我只能使用以下操作! ~ & ^ | + << >>
。
int isInRange(int x, int lbound, int ubound) {
int first = ubound + (~x);
int first1 = ~(first +1);
int hold = x + (~lbound);
int hold1 = ~(hold +1);
int final = (first1 +hold1);
int final1 = final >> 31;
int final2 = final1 & 1;
int final3 = !final2;
return final3;