你们觉着C++位操作效率高吗?在平常编程中常用到吗
你们觉得C++位操作效率高吗?在平常编程中常用到吗?位操作有取反(~),异或(^),同或(~^),位与(&),位或(|)等,
你们觉得C++位操作效率高吗?在平常编程中常用到吗?
位操作有取反(~),异或(^),同或(~^),位与(&),位或(|)等,大家在编程中常用到吗?
感觉用位操作可以少一些中间变量,但是可读性差了,各位觉得呢?
[解决办法]
理论上效率和C是一样的。表示一些状态,尤其是允许多状态同时存在的时候很方便。
[解决办法]
#define WORK1 0x00000001
#define WORK2 0x00000002
#define WORK3 0x00000004
...
DWORD dwStatus = WORK1
[解决办法]
WORK2;
if (WORK1 && dsStatus)
{
...
}
if (WORK2 && dsStatus)
{
...
}
if (WORK3 && dsStatus)
{
...
}
[解决办法]大致就是这个意思。这里应该用&,而不是&&,应该是笔误。
[解决办法]IO库中的good,fail等状态,底下可能就是bit运算,只不过封装的好。
[解决办法]另外最常用的是增加一个状态和去掉一状态,分别是:
a
[解决办法]= some_state;
a &= ~some_state;
[解决办法]感觉STL中的bitset挺好用的吧
[解决办法]这个用得太多了,特别是嵌入式编程,很大一部分寄存器都是按位定义功能和表示状态的。
windows系统级也用得挺多的, 从API就能看出来,如窗口style 都是按位定义的
不存在可读性差的问题,用多了就觉得很自然
[解决办法]游戏的触发系统用位很方便,可以减少传参的问题
[解决办法]谁说位操作可读性差?
fh=_sopen(argv[1],_O_BINARY
[解决办法]
_O_RDONLY
[解决办法]
_O_RANDOM,_SH_DENYWR);
[解决办法]有些工作需要高性能的, 不用位操作简直是无解,如搜索引擎
64位整数,一个移位操作,只需要一条指令,如果你用整数加循环,要多少指令
[解决办法]看下flag寄存器