C++位运算符基础与常见操作

位运算符直接操作二进制位,效率高,C++提供6种:&(与)、|(或)、^(异或)、~(取反)、(右移),常用于奇偶判断、乘除优化、交换数值、清除或提取特定位,典型应用包括统计1的个数、判断2的幂和找唯一数。

c++位运算符基础与常见操作

位运算符直接对整数在内存中的二进制位进行操作,效率高,常用于底层编程、状态压缩和算法优化。C++提供了6个基本的位运算符,掌握它们能帮助你写出更高效的代码。

基本位运算符说明

C++中常用的位运算符包括:

&:按位与,两个对应位都为1时结果为1|:按位或,任一对应位为1时结果为1^:按位异或,对应位不同时为1~:按位取反,0变1,1变0:左移,将二进制位向左移动指定位置,右边补0>>:右移,将二进制位向右移动指定位置,左边补符号位(有符号)或0(无符号)

例如:

int a = 5; // 二进制: 101
int b = 3; // 二进制: 011
a & b; // 结果: 1 (001)
a | b; // 结果: 7 (111)
a ^ b; // 结果: 6 (110)
~a; // 结果: -6(补码表示)

常用技巧与应用场景

位运算在实际编程中有许多高效用法:

立即学习“C++免费学习笔记(深入)”;

判断奇偶性:x & 1 == 0 表示偶数,否则为奇数快速乘除2的幂:x > n 相当于 x / (2^n)(正数)交换两个数:a ^= b; b ^= a; a ^= b; 可不用临时变量清除最低位的1:x & (x – 1) 常用于统计1的个数提取最低位的1:x & (-x)设置或清除某一位: 设置第n位:x |= (1 清除第n位:x & ~(1 检查第n位是否为1:(x >> n) & 1

典型应用示例

以下是一些常见问题的位运算解法:

统计二进制中1的个数: int count = 0;
while(n) {
  n &= n – 1;
  count++;
}判断是否为2的幂:(n > 0) && ((n & (n – 1)) == 0)只出现一次的数字:数组中其他数都出现两次,找出唯一的那个 —— 使用全部异或,结果即为答案

基本上就这些。位运算看似简单,但灵活使用可以极大提升程序性能,尤其在处理标志位、状态机、哈希计算等场景时非常实用。关键是理解二进制表示和每种操作的本质效果。

以上就是C++位运算符基础与常见操作的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1475557.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月18日 23:29:23
下一篇 2025年12月18日 23:29:37

相关推荐

发表回复

登录后才能评论
关注微信