新人求助:枚举数据结构中位移操作符的含义

shenjbk00123 2017-10-26 10:58:23
如下面这段代码(网上找到的游戏源码中的一段):
enum RENDER_FLAGS
{
RENDER_NONE = 0x00,
RENDER_SKY = (1<<0),
RENDER_TERRAIN = (1<<1),
RENDER_SCENE_OUTDOOR = (1<<2),
RENDER_SCENE_INDOOR = (1<<3),
RENDER_FLORA = (1<<4),
RENDER_WATER = (1<<5),
RENDER_SHADOW = (1<<6),
RENDER_MODELTARGET = (1<<7),
RENDER_POSTEFFECT = (1<<8),
RENDER_SPRITE = (1<<9),
RENDER_DEBUG_INFO = (1<<10),
RENDER_WATER_TEXTURE = (1<<11), // 将场景渲染到水纹理
RENDER_CHARACTER = (1<<12),
RENDER_NAVIGATION = (1<<13),
RENDER_COLLISION = (1<<14),
RENDER_ALL = RENDER_SKY|RENDER_TERRAIN|RENDER_SCENE_OUTDOOR|RENDER_SCENE_INDOOR|RENDER_CHARACTER|RENDER_FLORA|RENDER_WATER|RENDER_SHADOW|RENDER_SPRITE|RENDER_DEBUG_INFO,
};
其中为什么是使用到位移操作符?有什么特别的含义吗?按大多数见到的枚举定义中,都是应该是0.1.2.3...之类的
...全文
462 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianmao111 2018-03-26
  • 打赏
  • 举报
回复
为了计算“或”的关系 比如1<<0=00000001 1<<1=00000010 他俩或=00000011 在判断的时候就可以通过00000011与上前两个的任意一个如果>0表示 条件为真

455

社区成员

发帖
与我相关
我的任务
社区描述
其它游戏引擎
社区管理员
  • 其它游戏引擎社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧