Go にはビットクリア演算子(&^)というのがある。
x | y | x &^ y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 1 |
1 | 1 | 0 |
結果に対し x と y が対称ではないしなんだこれ?と思ったけど、大した話ではなく x の 0 にしたいビットを y で指定してるだけですね。例えば x の下位 2 ビットをクリアするのであれば y の下位 2 ビットを 1 にする。
式 | 値 |
---|---|
x | 0101 |
y | 0011 |
x &^ y | 0100 |
ってことですね。
More than 5 years have passed since last update.
Go にはビットクリア演算子(&^)というのがある。
x | y | x &^ y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 1 |
1 | 1 | 0 |
結果に対し x と y が対称ではないしなんだこれ?と思ったけど、大した話ではなく x の 0 にしたいビットを y で指定してるだけですね。例えば x の下位 2 ビットをクリアするのであれば y の下位 2 ビットを 1 にする。
式 | 値 |
---|---|
x | 0101 |
y | 0011 |
x &^ y | 0100 |
ってことですね。
Register as a new user and use Qiita more conveniently