Goのビット演算についてまとめる
きっかけ タイトル通りビット演算についてまとめる。 きっかけは、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 }