常用位運算

位運算常見操作

判斷奇偶

  • (x & 1) == 1 == x % 2 == 1判斷奇數
  • (x & 1) == 0 == x % 2 == 0判斷偶數

位運算除法

x / 2 == x >> 1

>>> 為無符號右移,高位補0。>>為有符號右移,正數高位補0,負數高位補1。

獲取二進制最右邊的 1 :x & (-x)

  • 求補碼的方式:按位取反加1

-x = \lnot x + 1

  • 取完補碼之后,可以看出,結果是最右邊的 1 不動,然后其他所有位都按位取反。
  • 要清楚,計算機計算負數的時候,會求其補碼,正數的補碼是自己本身,負數的補碼就是上面的求法,這樣互為相反數的兩個補碼進行 &,就會得到最后一位 1 ,其前面和后面的1都會被過濾掉,后面的0會保留,形成新的二進制數。

將二進制最右邊的 1 去掉: x & (x - 1)

  • 首先要了解 x - 1會發(fā)生什么,從二進制的角度,這會影響最后的1以后的數位,前面不會影響。然后 -1 之后,最右邊的 1 變成 0,后面的0都會變成 1。
  • 然后 &操作,結果上就是把 最右邊的 1 去掉。

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
禁止轉載,如需轉載請通過簡信或評論聯系作者。

相關閱讀更多精彩內容

友情鏈接更多精彩內容