news 2026/7/5 14:53:08

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/5 14:52:52

SDC命令详解:使用source命令读取脚本

相关阅读 SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482 目录 指定回显命令 指定回显命令返回值 指定发生错误时继续执行 sh_continue_on_error(默认值为true) sh_script_stop_severity&#xff0…

作者头像 李华
网站建设 2026/7/5 14:50:13

topics in life

Lets raise a toast to our cooperation. Mr Zhang is going to be a long term strategic partner for us. Come over and propose a toast to Mr Zhang.I cant drink alcohol So Id like to toast you with tea instead.——tea? You think tea is the same as wine?Mr zha…

作者头像 李华
网站建设 2026/7/5 14:49:34

如何利用downr1n实现iOS设备有线降级与越狱的完整指南

如何利用downr1n实现iOS设备有线降级与越狱的完整指南 【免费下载链接】downr1n downgrade tethered checkm8 idevices ios 14, 15. 项目地址: https://gitcode.com/gh_mirrors/do/downr1n downr1n是一款专为具备checkm8硬件漏洞的iOS设备设计的开源降级工具&#xff0c…

作者头像 李华
网站建设 2026/7/5 14:46:23

C语言 结构体(上)

1.什么是结构体?C 语言内置类型 例如:int / char / float 只能保存单一数据,而结构体(struct) 是一种自定义复合数据类型,可以把多个不同类型、相关联的数据当作一个整体。比如描述一个学生:姓名…

作者头像 李华
网站建设 2026/7/5 14:45:35

跨平台macOS组件下载神器:gibMacOS完全指南

跨平台macOS组件下载神器:gibMacOS完全指南 【免费下载链接】gibMacOS Py2/py3 script that can download macOS components direct from Apple 项目地址: https://gitcode.com/gh_mirrors/gi/gibMacOS 在跨平台环境中获取macOS安装文件一直是个技术难题&…

作者头像 李华
网站建设 2026/7/5 14:45:15

深耕 XR 安卓底软开发:Framework 定制、渲染优化与系统稳定性实战

前言 元宇宙、空间计算和物联网硬件正在以肉眼可见的速度落地。VR 头盔、AR 眼镜、MR 空间设备逐渐进入量产阶段,但这些设备跟我们平常用的手机、平板并不一样。XR 头戴设备是异形的嵌入式终端:双屏且异构、对空间渲染算力要求极高、传感器并发多路、姿态感知要做到近乎实时…

作者头像 李华