ビット演算を理解するには二進数の理解からかなー 普段目にしてる1とか10って数字は、コンピュータの中で二進数で管理されてるものを、人間が読みやすいようにしたものにすぎません 普段はそれを32bitなり64bitなりでひとまとめにして一つの数字として扱ってます ビット演算ってのはそれらの0と1の塊に対してそれぞれの桁で論理演算をするのね 桁数多いとめんどくさいから8bitで説明するけど たとえば、0b10101010 AND 0b00001111 の場合だと 結果は 0b00001010 ってな感じになんのね では、0b10101010 AND 0b01010101ではどうなるでしょう? この場合は、0b00000000、つまり0って数字 元の値はそのままIF文が扱うと両方とも0じゃないからTRUEだけど、ANDしちゃうと0でFALSEになっちゃうのよね