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