【问题标题】:Using bitwise operations to implement absolute value使用按位运算实现绝对值
【发布时间】:2017-10-08 03:55:16
【问题描述】:

我正在尝试创建一个 int 数组,该数组从双精度数组中获取双精度,通过强制转换将值截断为整数,然后使用按位运算来获取整数的绝对值。到目前为止,这是我所得到的:

   int int_array[20];
    int o;
    for(o = 0; o<20; o++){
            int currentNum = (int) f_array[o];
            //Now use bitwise operations to get abs
            int num = currentNum;
            int y = currentNum >>31;
            currentNum = (num ^ y) - y;
            int_array[i] = currentNum;
    }

我使用 print 语句打印出 y 的值,它似乎正在工作(0 或 -1),但是当我打印出 int_array 时,我似乎得到了垃圾值。有任何想法吗?任何帮助表示赞赏,顺便用 C 编码。

【问题讨论】:

    标签: int bit-manipulation absolute operations


    【解决方案1】:

    int_array[i]应该是int_array[o],你基本上打错了。

    【讨论】:

      猜你喜欢
      • 2011-07-14
      • 2013-05-28
      • 2020-01-23
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多