2017-10-07 79 views
1

我試圖做一個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編碼。

回答

1

int_array [i]應該是int_array [o],你基本上犯了一個錯字。

+0

哎呀,你是對的!謝謝哈哈 – Quabs