位操作一般用来做什么?

很少看到有位操作的相关代码, 一般可以用位操作做什么事?或者有什么运用场景?

阅读 3.7k
7 个回答

操作底层的一些东西吧,像EFLAGS寄存器的不同位有不同的意义,这就需要操作位了。另外一个用处在于,你可以用位储存大量的布尔值,当有上千万个TRUE或FALSE时,使用一般的bool(4字节!)将浪费大量的内存。而将每个0或1存到位中就需要操作位了。

加密,权限,提示运算速度 。。。

新手上路,请多包涵

a & 1判断奇偶
a>>1 ,a>>2 乘上二的某个幂
a&(a - 1) 判断a是否是 2的幂
用过这3个.

在嵌入式开发中,涉及底层内存操作的,位操作就很常见。

mgdxmpmwgmgw

不需要额外内存空间的交换两个数:

a^=b;
b^=a;
a^=b;

补充:只能是整数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进