フラグ (コンピュータ)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動

コンピュータ関係でいうフラグ(flag)とは、真か偽か0か1かマイナスが付くか付かないか、などといった情報量が1ビットの値(情報)を状態として保持する、レジスタ変数などのことである。

操作[編集]

」の意の英語 flag であり、旗を連想させるような「上げる・立てる」及び対義語として「下ろす・降ろす・倒す」といった表現が使われることもあるが、他に「落ちる・落とす」などその他の表現が使われることもある。

以上の他に「トグルする」という操作がある。押しボタン型スイッチに見られる「プッシュ・プッシュ型」のように、操作の度に状態が交互に切り替わるような操作である。慣れないプログラマなどはこの操作を条件分岐を使って書いてしまいがちだが、論理否定の演算子や x = 1 - x といった式で簡潔で書けることに習熟すべきである。

またフラグが集まったワード等の一部を操作するにはビットマスクを使う。

ハードウェア[編集]

ステータスレジスタ[編集]

例: Z80ステータスレジスタ

  • Sフラグ: 計算結果の正負
  • Zフラグ: 計算結果がゼロかどうか
  • Hフラグ: 4ビットで表しきれないとき1(パックBCD向けのキャリーフラグ)
  • P/Vフラグ: パリティ・オーバーフロー
  • Nフラグ: 減算のとき1、加算のとき0
  • Cフラグ: 8ビットで表しきれないときに立つキャリーフラグ

ソフトウェア[編集]

ブーリアン型[編集]

フラグとして変数を扱う時、ブーリアン型を用いることがほとんどである。ブーリアン型は「真」(フラグが立っている) 及び「偽」(フラグが立っていない)[1]のみを値として受けつけ、都合が良いからである。言語によって条件式が期待される文脈ではブーリアン型しか受け入れられないことがある。

C言語C89などブーリアン型が無い言語もある。そういった言語では、多くが固定長整数型ないしは数値型[2]で代用されるという仕様としている。C言語の場合、0が偽、0以外が真として扱われる。またC言語では真の代表値は1なので、たとえば !0 は1になる。このような慣習は言語によって大きく異なることが多く、例えばUnixシェルでは0が真であるとか、他には真が -1 という言語もある[3]

ビットフィールド[編集]

言葉の広まり[編集]

日本ではフラグという言葉がコンピュータ用語の枠を超えて広まっていったのは1980年代後半からとみられ、パソコン雑誌では『コンプティーク』1985年7、8月号(角川書店)で「持ち物のフラグによるトリック」との見出しがあり、1986、7年の『ログイン』(アスキー)、『マイコンBASICマガジン』(電波新聞社)のアドベンチャーゲーム記事で「フラグ」が何度も使われている[4]

次いでパチスロ界隈で使われるようになり、1988年3月発行の『パチンコ攻略マガジン』NO.2(プラントピア)で「フラッグ」、1989年10月発行の『パチスロ機種別完全攻略本』(西東社)で「フラグが立つ」との記述があり、『週刊プレイボーイ』1989年4月25日号(集英社)でパチスロ用語として紹介されている[5]

ファミコン雑誌では1988年までほぼ見受けられないが、ファミコン通信1987年4月17日号の堀井雄二による記事「『ドラゴンクエストII』ができるまで 前編」で注釈なしの使用例がみられ、この記事は『ログイン』1987年4、5月号で連載したコラム「ゆう坊やの虹色ディップスイッチ」を再構成したもので、堀井が同誌で短期連載していた『堀井雄二の実践的アドベンチャーのつくり方』では1986年5月号で「フラグ編」と題して説明がなされていることから、改めて説明するまでもなく、ファミコン通信掲載時にはチェック漏れがあった可能性がある[4]。そして先述のパチスロには興味はないが週刊プレイボーイのような青年誌を読んだゲーム雑誌ライターも使うようになり[5]、1990年に「ゆう坊やの虹色ディップスイッチ」の単行本化の際には注釈が存在、この頃にゲーム制作に興味がある子供に知られていったとみられる[4]

脚注[編集]

  1. ^ 3値論理の場合は「不明」という値も取りうる
  2. ^ AWKやJavaScriptなど、特に整数型すら持たず1種類の数値型しかないような言語の場合。
  3. ^ 真を -1 にすると、論理否定とビット反転が兼用できるという利点がある
  4. ^ a b c “「フラグ」という言葉をプレイヤーも使い始めたのはいつから?──その起源はPCゲーム誌、堀井雄二、そしてパチスロ攻略本”. 電ファミニコゲーマー (マレ): p. 1. (2019年7月16日). https://news.denfaminicogamer.jp/kikakuthetower/190716a 2020年4月24日閲覧。 
  5. ^ a b “「フラグ」という言葉をプレイヤーも使い始めたのはいつから?──その起源はPCゲーム誌、堀井雄二、そしてパチスロ攻略本”. 電ファミニコゲーマー (マレ): p. 2. (2019年7月16日). https://news.denfaminicogamer.jp/kikakuthetower/190716a/2 2020年4月24日閲覧。 

関連項目[編集]