当前位置: 首页 > news >正文

C语言 操作符 (按位与) | (按位或) ^ (按位异或)

&:按二进制与。

| :按二进制或。

^ : 按二进制异或。

注意:操作数只能是整形


1.按位与

int main() { int a = 3; int b = -5; int ret = a & b; printf("ret = %d\n", ret); return 0; }

按位与怎么计算的呢?

(1).按位与的原则:有 0 则 0,全 1 为 1。

(2).写出数字的二进制补码:

如果是正数,正数的原码,反码,补码都相同。

如果是负数,先写出负数的原码,符号位不变,取反得到反码,+1得到补码。

(3).把这2个数字的补码相加。

最终得到的结果:

最终得到的是补码正数的原码,反码,补码相同,所以结果就是3。

2.按位或

int main() { int a = 3; int b = -5; int ret = a | b; printf("ret = %d\n", ret); return 0; }

按位与怎么计算的呢?

(1).按位与的原则:有 1 则 1,全 0 为 0。

(2).剩下的和按位与是一样的

得到的结果,看最高位是1,说明是个负数,这是补码,还要取反+1得到原码,(或者-1取反也是可以得到原码的)因为这就是-5的补码,结果也就是-5。

3.按位异或

int main() { int a = 3; int b = -5; int ret = a ^ b; printf("ret = %d\n", ret); return 0; }

按位异与怎么计算的呢?

(1).按位与的原则:相 同 为 0,相 异 为 1。

(2).剩下的步骤不变。

这次得到的补码,需要 取 反 + 1(-1 取 反 )得到原码。

补码: 1111 1111 1111 1111 1111 1111 1111 1000

反码:1000 0000 0000 0000 0000 0000 0000 0111

原码:1000 0000 0000 0000 0000 0000 0000 1000

而这个原码的数字就是 -8

最后,也希望对你有所帮助,byebye。

http://www.cnnetsun.cn/news/3162497.html

相关文章:

  • SDC命令详解:使用source命令读取脚本
  • topics in life
  • 如何利用downr1n实现iOS设备有线降级与越狱的完整指南
  • C语言 结构体(上)
  • 跨平台macOS组件下载神器:gibMacOS完全指南
  • 深耕 XR 安卓底软开发:Framework 定制、渲染优化与系统稳定性实战
  • TVA对具身智能领域的核心技术支撑(20)
  • 不同进程的线程切换**不一定引起进程切换**,但**必然涉及进程上下文切换(即进程切换)**——这里需要明确概念辨析
  • CCB(Change Control Board,变更控制委员会)是一个由项目干系人代表组成的正式团体
  • 智慧职教自动化学习助手:让在线课程学习更高效
  • 如何高效使用Python无人机地面站:MAVProxy开源工具实践指南
  • 告别传统投屏:scrcpy如何解决Android设备控制的三大痛点
  • Qwen Code新特性来袭:终端支持语音对话
  • TVA推动物理AI的具身智能革命(9)
  • Kubernetes 系列【4】基础概念
  • 医学图像分割神器TotalSegmentator:三步掌握100+解剖结构自动识别
  • AI智能体开发指南:从核心概念到实践应用
  • 开源B站视频下载器:轻松获取高清内容的Python解决方案
  • 告别手动对齐!用UvSquares插件3分钟搞定Blender UV网格重塑
  • 百万瓦的电台,几秒钟换一个频率——从Aspidistra到中亚的发射机房,一段高功率短波的快调谐往事
  • 从零开始学AI:小白程序员必备收藏指南,快速掌握大模型实战技能
  • 收藏!小白程序员必看:揭秘AI大模型记忆管理的真相与优化方案
  • 终极便携式Windows C/C++开发工具链:w64devkit完全指南
  • C++语言基础3:用户自定义类型“class”详细讲解
  • 企业级 MCP 网关:统一授权、限流、协议转换与监控的架构与实现
  • WebPShop:Photoshop专业WebP格式支持的终极解决方案
  • 终极指南:如何免费下载大疆无人机历史固件实现完全控制
  • VLC Android电视版完全指南:从零开始打造你的智能电视媒体中心
  • 为什么我的 AI 创课助手不会写糊——SDD 把追问规范长期挂载、TDD 把每一个 JSON 字段都验证
  • Kimi LeetCode 3464. 正方形上的点之间的最大距离 Python3实现