物の状態などをデータで表す場合に数値を使うことがありますが、そういう場合のテクニックです。 例としてファイルシステムのパーミッションを取り上げます。 パーミッションは下記の数値で表されます。 read :1 write :2 execute:4 あるファイルのパーミッションが5とすると、 (5 / 1) % 2 >= 1 これで判別できます。 (5 / 2) % 2 >= 1 // write (5 / 4) % 2 >= 1 // execute つまり、 ([パーミッション値] / [判別する権限値]) % 2 この式が1以上を返せば権限あり、1未満であれば権限なしとなります。 この計算式はかなり使えそうです。 バナナ:1 リンゴ:2 ブドウ:4 イチゴ:8 メロン:16 こうしておけば選択した値の合計値を保存しておくだけで、どの項目にチェックしたかが判別できます。 後で「イチゴ」が選択されたかどうかを判別したい場合は、 (13 / 8) % 2 >= 1 でわかります。 つまり ([合計値] / [果物の値]) % 2 >= 1 でわかるってこと。 |