ビット操作って?
指定した変数を0と1のみで構成された「二進数」と呼ばれる数え方に変換し、
最大32桁の0か1が記された数字の羅列にするコマンドです。
二進数って?
使用する数字は「0」と「1」のみで、
十進法(普段使われる数え方)に直して数が「2」上がるごとにその桁が増えていく数字の方法です。
例:数字の「0」を示すときは「0」、「1」を示すときは「1」、「2」を示すときに桁が上がり、「10(イチゼロ)」と表記します。
桁の数字がすべて1で埋まった次の数で新しく桁が増え、下の桁はすべて0に戻ります。そうして下桁を1で埋めては新たに桁が増えてを繰り返して
0と1の羅列が形成されます。
どうやって使うの?
二進数が「0」と「1」の二つの数の羅列であることを利用し、
特定の桁の数字が0か1どちらを示しているかによって、ゲームのフラグ管理として使うことができます。
先述の通り最大32桁まで操作することができるため、1つの変数を使って32個ものフラグを管理することができます。
コマンドを使用すると、このようなウィンドウが出現します。
①操作前の変数
選択した変数の数値を二進数に変換します。0と1の羅列に変換される様子を見ることはできません。
②操作する場所
二進数に変換した変数の全32桁のうちから、操作を行う桁を選びます。
③ビット操作
②で選んだ桁をどのように操作するかを選択します。
操作内容は全部で4種類あります。
立ち上げ
「0」になっている指定した桁を「1」にします。既に1のときは変化がありません。
立ち下げ
「1」になっている指定した桁を「0」にします。既に0のときは変化がありません。
反転
指定した桁の「0」を「1」に、「1」を「0」にします。
抜き取り
指定した桁が「1」なのか「0」なのかチェックします。
④結果を入れる変数
「立ち上げ・立ち下げ・反転」のいずれかを行った場合、行った後の二進数を十進数へと直し、指定した変数に書き込みます。
「抜き取り」を行った場合、行った桁が「0」か「1」、それ以外が全て「0」になっている二進数を生成、
それを十進数に直して指定した変数へ書き込みます。
使用例
整数「15」が書き込まれた変数Aと、ビット操作の結果を書き込む変数Bを用意します。
反転(立ち上げ・立ち下げ)の場合
- 変数Aを二進数に変換し、全32桁のうち下4桁を1で埋めた数字「00000...(中略)...1111」を生成する
- ビット操作を行い、二進数3桁目の「1」を「0」に反転させる
- この操作を行った二進数「00000...(中略)...1011」を再び十進数に戻す
- 十進数に戻った数字を結果として変数Bに書き込む
という処理になります。
このイベントNPCを調べると、変数Bに書き込まれた数字をチャットログに出力するよう出来ています。
二進数「1011」を十進数に直すと整数「11」を示し、チャットログにも「11」が出力されます。
抜き取りの場合
- 変数Aを二進数に変換し、全32桁のうち下4桁を1で埋めた数字「00000...(中略)...1111」を生成する(ここまではさっきと同じ)
- ビット操作を行い、二進数3桁目の数字が「0」か「1」かチェックする
- 変数Aの3桁目は「1」であるため、この3桁目のみが1になっている二進数「00000...(中略)...0100」を生成する
- 生成した二進数を再び十進数に戻し、整数として変数Bに書き込む
という処理になります。
二進数「0100」を十進数に戻すと「4」となるため、
このイベントNPCを調べるとチャットログに「4」が出力されます。
「立ち上げ・立ち下げ・反転」を使用すると、32桁ぶん、つまり全32個あるフラグの書き込みや削除を行うことができます。
「抜き取り」を使用すると、指定した桁が「0」であるときは必ず「0」が、「1」であるときは必ず何かしらの整数が生成されるため、
指定したフラグが立っているかどうかを判別することができます。
1つの変数内に32個までフラグを納めることができるため、
アイテムの所持状況などを順不同にフラグとして立てることなどができます。
1個丸ごと「ON」「OFF」のみに使うよりも、数に限りのある(最大100個)グローバル変数を節約することもできます。
最終更新:2026年04月06日 19:46