解決できないように見えるビット単位の列挙型に関する質問があります。次の例のように、ビット単位の列挙型で表されるフラグがいくつかあります。
enum
{
EnumNone=0,
EnumOne = 1<<0,
EnumTwo = 1<<1,
EnumThree = 1<<2,
EnumFour = 1<<3
};
typedef NSUInteger MyEnum;
上記の例ではすべて問題ありません。私の調査とstackoverflowのさまざまな役立つ投稿(たとえばこれ)に基づいて、上記の例を使用すると、基本的に32のオプション(または必要に応じてシフト)が与えられ、各オプションは32の1ビットを表すと結論付けました。 -ビットシリーズのオプション。基本的には、まで行くことができることを教えてくれますEnumThirtyTwo = 1 << 31
。
私の質問はこれです:
たとえば、ビット単位の列挙型を使用して表すために、32個を超えるフラグ(たとえば75個のフラグ)があるとします。それをどのように表現するのが最適でしょうか?
enum
{
EnumNone=0,
EnumOne = 1<<0,
EnumTwo = 1<<1,
EnumThree = 1<<2,
EnumFour = 1<<3,
...
...
EnumSeventyFive = 1<<75
};
typedef NSUInteger MyEnum;
たとえば、列挙型の宣言を次のように変更するのは簡単なことでしょうか?typedef long int MyEnum;
またはtypedef long MyEnum
?