检查数字是否在一个范围内

时间:2014-03-04 16:54:25

标签: c bit-manipulation

我需要检查一个数字是否在一个给定的范围内包含,我所用的代码除了当所有三个数字相同时。我应该得到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;

0 个答案:

没有答案