【筆記】關於位運算(2)

今天 Kersen 學姐給咱們出題考試,考了一大堆位運算題,因此更新一下筆記(主要是更新一些 巧技小)~~html

以前的筆記 -->【學習筆記】關於位運算學習

ps:由於改了改下面的表格的寬度(以前炸了),因此如今表格不炸了,但日曆炸了……

位運算 巧技小 (二進制)

做用 方法
去掉最後一位 \(x >> 1\)
在最後加一個 0 \(x << 1\)
在最後加一個 1 \(x << 1~~ \mid ~~ 1\)
把最後一位變成 1 \(x ~~\mid ~~1\)
把最後一位變成 0 \((x~~ \mid ~~1) ~~ \text{^} ~~1\)
把最後一位取反 \(x ~~\text{^}~~ 1\)
把右數第 k 位變成 1 \(x~~\mid~~(1 << (k - 1))\)
把右數第 k 位變成 0 \(x~~ \& \text{~}~~(1 << (k - 1))\)
把右數第 k 位取反 \(x~~\text{^}~~(1 << (k - 1))\)
取末 k 位 \(x~~\&~~(1 << k - 1)\)
取右數第 k 位 \(x >> (k - 1)~~\&~~ 1\)
把末 k 位變成 1 \(x ~~\mid~~ (1 << k - 1)\)
把末 k 位取反 \(x ~~\text{^}~~(1 << k - 1)\)
把右數連續的 0 變成 1 \(x~~\mid~~(x - 1)\)
把右數連續的 1 變成 0 \(x~~\&~~(x + 1)\)
把右數第一個 0 變成 1 \(x~~\mid~~(x + 1)\)
把右數第一個 1 變成 0 \(x~~\&~~(x - 1)\)
取右邊連續的 1 \((x~~\text{^}~~(x + 1)) >> 1\)
去掉右起第一個 1 的左邊(lowbit) \(x~~\&~~(x~~\text{^}~~(x - 1))\) \(\text{or}\) \(x~~\&~~(-x)\)
判斷奇偶 \(x~~\&~~1\)

位運算的優先級:spa

\(~~\text{~}~~\)) > (\(<<,>>\)) > (\(\&\))> (\(\text{^}\))> ( | )htm

相關文章
相關標籤/搜索