ビットマスクを使用して、複数の値を 1 つの変数に格納する一般的な方法があります。たとえば、ユーザーがアイテムに対する読み取り、書き込み、および実行の権限を持っている場合、それを 1 つの数字に変換するには、read = 4 (2^2), write = 2 (2^1), execute = 1 (2^0)
これらを足し合わせて 7 を取得します。
私はこの手法をいくつかの Web アプリケーションで使用しています。通常、変数をフィールドに格納し、異なる値の数に応じて MEDIUMINT などの型を指定します。
私が興味を持っているのは、このように保存できる値の数に実際的な制限があるかどうかです? たとえば、数値が 64 を超えると、(64 ビット) 整数を使用できなくなります。この場合、あなたは何を使いますか?プログラム ロジックにどのような影響がありますか (つまり、ビットごとの比較を引き続き使用できますか)。
非常に大きな値のセットを取得し始めると、別の方法が最適なソリューションになることはわかっていますが、この方法の境界に興味があります。