ビット演算にはビット演算子を使用します。GML で利用できるビット演算子は六つ。
& | | | ^ | ~ | << | >> |
---|---|---|---|---|---|
ビットAND | ビットOR | ビットEOR(XOR) | ビットNOT | 左シフト | 右シフト |
基本的には整数型の変数値に対してビット操作を行うため利用されます。
ビットXOR(EORとも/排他的論理和)
排他的論理和は XOR で説明されることが多いです。処理系によって呼び名が違っていたらしく、これについては GMS のフォーラムでも少し話題になっていました。XOR/EOR/EXOR と併記された説明も確かにあります。
exclusive OR の略なので、どれでもいいのです。
左辺・右辺のビットを比較した時、左辺右辺とも同じ位置に 1 がある場合だけ 0 を返す。それ以外は全て 1 でマスクします。
ビットNOT(ビット反転/ビット否定)
対象となる変数の全ビットを反転。0 という符号を 1 にして、1 という符号を 0 にします。
注意点として、0 という数値をビット反転すると -1 という値になる点。他の数値も全て同じ。