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

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



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

左ビットシフト

ビットを左へ移動させます。
ここではまず POW2 (二の累乗)を思い出してください。

    python_bitwise_operator_pow2_output_sample_screenshot

上記サンプルでは二の累乗を出力すると同時に二進数へ変換しています。

二進法は二の累乗で桁上がりします。桁上がりでは 1 という符号が左に一個移動します。1 ビット左へビットを移動する左シフトを使って、ループ処理で二の累乗を表現しています。

結果だけ見ると 1 ビット左シフトは、算術演算子を使った計算で値を二倍した時と同じ結果を得られます。しかし処理速度はシフト演算子を使った方が速いです。

    python_bitwise_operation_sample_left_bit_shift_screenshot

右ビットシフト

ビットを右へシフト。

演算子を使った計算だと除算と同じ結果を得られます。

変数型に対する処理系依存があるため、コンパイラを使う場合には GML でこのビット演算を積極的に使うべきかは悩ましい。

    python_bitwise_right_bit_shift_sample_screenshot_for_loop

次のページへ