日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

位运算各种方法总结

發布時間:2023/12/14 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 位运算各种方法总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

位運算

  • 1、按位與
  • 2、按位或
  • 3、按位取反
  • 4、按位異或
  • 5、按位同或
  • 6、左移
  • 7、帶符號右移
  • 8、無符號右移
  • 9、python實現各種位運算操作
  • 10、位運算小技巧
  • 11、應用

\quad \quad現代計算機中,幾乎都是二進制計算機(三進制計算機僅有少量),所有的數據都以二進制的形式存儲在設備中。位運算就是直接對整數在內存中的二進制位進行操作,計算時將十進制轉為 二進制,再進行計算。
\quad \quad需要注意,位運算是針對 二進制 的運算,對每一個位進行布爾運算操作。所以 手動 進行 位運算計算 時,需要將數轉換成二進制的表示形式,再進行計算。

1、按位與

\quad \quad計算時將 十進制 轉為 二進制 再進行計算,同位置為1,則結果為1,其余情況皆為0

  • 結論:n&(n-1) 會去除 n 的位級表示中最低的那一位 1。
  • 應用例題:二進制中1的個數

2、按位或

\quad \quad對應位上有一個為1,結果就為1。兩個都為0,結果才得0,類似加的關系。

3、按位取反

\quad \quad對每一位進行取反操作,如果是1則結果為0,是0則結果為1。即為反碼

4、按位異或

\quad \quad當兩個對應位不同時結果才為1,相同時得0.


性質:

  • 任何數和 0做異或運算,結果仍然是原來的數,即a⊕0=a。

  • 任何數和其自身做異或運算,結果是 0,即 a⊕a=0。

  • 異或運算滿足交換律和結合律,a⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b。

5、按位同或

\quad \quad當兩個對應位相同時結果才為1,不同時得0.

6、左移

\quad \quad將二進制位上的數向左移動,右邊補0.

7、帶符號右移

\quad \quad有符號整數最高位代表著數的正負,最高位為1代表負數,最高位為0代表正數。

\quad \quad帶符號右移是右移時,左邊補充最高位上的值。

8、無符號右移

\quad \quad二進制上的數向右移動,右移時左邊補0。

9、python實現各種位運算操作

位運算符說明使用形式
&按位與a&b
|按位或a|b
~按位取反~a
^按位異或a^b
<<按位左移a<<b
>>按位右移a>>b
-轉換為負數-a

10、位運算小技巧

1、獲取二進制中最右邊的1,且其它位置為0: X & (-X)


因此,x 和 ?x 只有一個共同點:最右邊的 1。這說明 x & (-x) 將保留最右邊的 1。并將其他的位設置為 0。

2、將二進制中最右邊的1置為0: X & (X - 1)

  • (x - 1) 代表了將 x 最右邊的 1 設置為 0,并且將較低位設置為 1。

  • 再使用與運算:則 x 最右邊的 1 和就會被設置為 0,因為 1 & 0 = 0。

11、應用

Leetcode之位運算

總結

以上是生活随笔為你收集整理的位运算各种方法总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。