火龙信奥
  • 首页
  • 课程
  • 题库
  • 打卡
    • 代码对战
    • 快速对战
  • 题单
  • 团队
  • 荣誉墙
  • 商城
  • 登录 / 注册

位运算的计算和运用

作者: 作者的头像   yunkai , 时间:2025-06-07 20:18:14 , 所有人可见, 阅读  43

位运算是直接对整数在内存中的二进制位进行操作,下面详细介绍几种常见的位运算及其计算方式:

注意

位运算的优先级小于 加(+) 、减(-)

按位与(&)

只有对应的两个二进制位都为1时,结果位才为1,否则为0。 示例:计算5 & 3。

5的二进制:0101
3的二进制:0011
-----------
&运算结果:0001 → 转为十进制是1

结论:5 & 3 = 1

按位或(|)

只要对应的两个二进制位中有一个为1,结果位就为1。 示例:计算5 | 3。

5的二进制:0101
3的二进制:0011
-----------
|运算结果:0111 → 转为十进制是7

结论:5 | 3 = 7

按位异或(^)

当对应的两个二进制位相异时,结果位为1。 示例:计算5 ^ 3。

5的二进制:0101
3的二进制:0011
-----------
^运算结果:0110 → 转为十进制是6

结论:5 ^ 3 = 6

按位取反(~)

对每个二进制位进行取反操作,即0变为1,1变为0。 示例:计算~5。

5的二进制:0101
-----------
~运算结果:1010 → 转为十进制是-6(补码表示)

结论:~5 = -6

左移(<<)

将一个数的各二进制位全部左移若干位,移动的位数由右操作数指定,高位丢弃,低位补0。 示例:计算5 << 2。

5的二进制:0101
左移2位: 010100 → 转为十进制是20

结论:5 << 2 = 20

右移(>>)

将一个数的各二进制位全部右移若干位,移动的位数由右操作数指定,低位丢弃,高位补符号位(正数补0,负数补1)。 示例:计算5 >> 2。

5的二进制:0101
右移2位: 0001 → 转为十进制是1

结论:5 >> 2 = 1

应用场景

  1. 交换两个数:通过异或运算可以在不使用临时变量的情况下交换两个数的值。
  2. 判断奇偶性:通过与1进行按位与运算,可以快速判断一个数是奇数还是偶数。
  3. 权限控制:利用位运算可以高效地实现权限的增删改查操作。

—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com

©2026加盟我们 | 关于我们 | ACM课程 | 常见问题 | 成果墙 | 评测记录 | 浙ICP备2021013995号
在线画图 | OI WIki | 打字练习
火龙信奥
请输入登录信息


请完成安全验证
验证码底图 滑块
向右拖动滑块完成验证
请输入用户名 / 绑定的手机号码



请输入注册信息(手机号验证码注册)





验证码5分钟有效,60秒内不可重复获取,每日最多3次

微信登录

微信登录二维码

正在生成二维码...

账号已过期,请续期。
去续期

绑定手机号

📱

为了更好地保护您的账号安全,享受完整的平台服务

请您尽快绑定手机号码