通過計算的方式取某數的符號

在某些特殊運算中,不想通過邏輯代碼來判斷某個數是負整數還是正整數,首先我們想到的取正還是負最好的方式就是把那數換算成正負1,通過思考發現用簡單的X除以X不通滿足條件,雖然正數除以正數=0,但是當X爲負數或0時就出問題了。

在此我想到了用移位運算,一個簡單的公式: 數字類型>> 數字類型的最大位數-1|1          (帶符號右移再取或)

比如:100,我們要得到1。因爲100是int類型,int類型佔32位(有些是64位,這得跟計算機有關),

100>>31|1,計算結果就是1.

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章