【发布时间】:2014-04-29 11:23:37
【问题描述】:
我有一些对象,我只想根据不同的标准向访问者显示。 该对象有一个位掩码,我定义了以下条件:
const FLAG_ALWAYS = 0; // always show this item
const FLAG_LOGIN = 1; // only display to logged in users
const FLAG_NOTLOGIN = 2; // only display to users not logged in
const FLAG_OTHER = 4; // other criteria
const FLAG_NORTH = 8; // GeoIP
const FLAG_SOUTH = 16;
标志的组合当然是可能的,例如1+4+16 或2+4。
一个项目可以在 3 种登录条件下显示,例如:已登录、未登录或两者兼有。因此我需要FLAG_NOTLOGIN。
我对@987654325@ 感到困惑...应该是0,还是应该涵盖所有其他标志,例如4095?
或者我应该删除FLAG_NOTLOGIN 吗?
【问题讨论】:
-
设置多个标志时,条件是标志的合取(满足所有条件),还是析取(满足任何条件)?
-
@Vovanium 所有用户标志都必须出现在对象标志中。一个用户可以有标志
FLAG_LOGIN,一个对象可以有FLAG_LOGIN和FLAG_NOTLOGIN
标签: bit-manipulation flags bitmask bitflags