位運算獲取、去除二進制中最右邊的1

2的冪 刷LeetCode看到題解的時候,不禁膜拜神奇的位運算,O(1)時間即可完成,因此mark下這篇文章 獲取二進制中最右邊的1 x&(-x) 就是這麼簡潔,就能實現獲取到二進制中最右邊的 1,且其它位設置爲 0。 原因: 首先在補碼錶示法中,負數的補碼 = 取反 +1,這個都知道,但你可能沒發現: 取反後:最右邊的 0 的位置對應於 最右邊的 1 的位置, 而取反後 +1 ,則會把該位的1往
相關文章
相關標籤/搜索