Goのビット演算についてまとめる

Buy Me A Coffee

September 24, 2022


きっかけ

タイトル通りビット演算についてまとめる。

きっかけは、AtCoderでこの問題が出た時よくわからなかったため。

OR

OR 演算は左辺と右辺の同じ位置にあるビットを比較し、

どちらかのビットが 1 の場合 1 にする。

例えば、5 と 3 の OR を取ってみる

二進数に直すと、以下の通りになる

  • 5: 00000000000000000000000000000101
  • 3: 00000000000000000000000000000011

そうすると、7(00000000000000000000000000000111)になる

コードで確認してみる

package main

func main(){
    a, b := 5, 3
    println(a|b)
    // output: 7
}

AND

OR 演算は左辺と右辺の同じ位置にあるビットを比較し、

両方のビットが 1 の場合 1 にする。

  • 5: 00000000000000000000000000000101
  • 3: 00000000000000000000000000000011

そうすると、1(00000000000000000000000000000001)になる

package main

func main(){
    a, b := 5, 3
    println(a&b)
    // output: 1
}

XOR

OR 演算は左辺と右辺の同じ位置にあるビットを比較し、

どちらか 1 つが 1 の場合 1 にする。

package main

func main(){
    a, b := 5, 3
    println(a^b)
    // output: 6
}



© 2023 komisan19 All Rights Reserved.