小编Joe*_*rez的帖子

我的方法需要使用更少的运算符

我正在做一个家庭作业,我需要在最多24个运算符中创建一个按位方法.我的代码有效...但我有25个操作员,一个太多了.有人能发现一种更有效的方法来做一段代码吗?

 int isGreater(int x, int y)
    {
      int xSign = (x>>31);
      int ySign = (y>>31);
      int check1 = (xSign & ySign) | (~xSign & ~ySign);
      int same = !((( x + ((~y) + 1) )>>31) & 0x1);
      int check2 = (check1 & same) | (~check1 & !xSign);
      int equal = ((!(x ^ y))<<31)>>31;
      return 0 | (~equal & check2);
    }
Run Code Online (Sandbox Code Playgroud)

c++ bit-manipulation operators

2
推荐指数
1
解决办法
290
查看次数

标签 统计

bit-manipulation ×1

c++ ×1

operators ×1