【发布时间】: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