我有一个关于按位枚举的问题,我似乎无法解决。我有许多由按位枚举表示的标志,如下例所示:
enum
{
EnumNone=0,
EnumOne = 1<<0,
EnumTwo = 1<<1,
EnumThree = 1<<2,
EnumFour = 1<<3
};
typedef NSUInteger MyEnum;
上面的例子一切都很好。根据我的研究和stackoverflow中的各种有用的帖子(例如this),我得出结论,使用上面的例子,我基本上得到了32个选项(或者如果你愿意的话),每个选项代表32中的1位-bit系列的选项,基本告诉我可以一路走到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
?