ビット演算にはビット演算子を使用します。GML で利用できるビット演算子は六つ。

& | ^ ~ << >>
ビットAND ビットOR ビットEOR(XOR) ビットNOT 左シフト 右シフト



基本的には整数型の変数値に対してビット操作を行うため利用されます。

記号の読み方

  • & = アンパサンド(ampersand
  • | = パイプ記号(パイプライン
  • ^ = キャレット(ハット/サーカムフレックス/アクサンシルコンフレックスなど複数)
  • ~ = チルダ(tilde

あとちょっとここから GML を捨てます宣言。python コンソールで説明させてください。GML を使った場合にも結果は同じですが、GM:S では出力結果を出すのが少し面倒なのです。

ビットAND(ビット積)

左辺と右辺のビットを比較して、左辺右辺両方のビットが1の時に1を返します。
それ以外は全て 0 でマスクされます。

    python_binary_format_bitwise_operation_bit_and_sample
31 の二進数は 11111
4  の二進数は   100

   31 & 4 は 
11111 & 00100
である
  11111
& 00100
-------
  00100

結果 31 & 4 == 4 となる。

ビットOR(ビット和)

左辺と右辺のビットを比較して、左辺右辺どちらかのビットが1の時に1を返す。

    python_binary_format_bitwise_operation_bit_or_sample
16 の二進数は 10000
7  の二進数は   111

   16 | 7 は 
10000 | 00111
である
  10000
| 00111
-------
  10111

結果 16 | 7 == 23 となる。

次のページへ