我有一个很大的位,我想经常重置其中的各个位.哪种方法更快?
一个) bitset[word_index] ^= 1 << bit_index
要么
b) bitset[word_index] &= ~(1 << bit_index)
该应用程序适用于桌面(如果它起作用).
他们不做同样的事情.
选项a将翻转给定位; 选项b将清除它.去实际反映你的意图.如果你想清除这个位但你碰巧知道它总会被设置,我会使用选项b,因为它更清楚地说明了"清除位"部分.
当你说你想"经常"这样做时 - 这个频率有多高?您是否有任何证据表明这是您申请中的瓶颈?如果没有,为什么你对最快的方式感兴趣而不是最可读的方式?