C/运算符(按位与、按位或、按位异或)

简介: C/运算符(按位与、按位或、按位异或)

本文主要介绍C语言中按位与、按位或、按位异或三个操作符的使用。

该三个操作符中的位,代表的是二进制位。

按位与:&
运算规则:只有两个数的二进制同时为1,结果才为1,否则为0。(负数按补码形式参加按位与运算)

实例:

#include<stdio.h>
int main()
{
  int a = 3 & 5;
  printf("%d  ", a);
  return 0;
}

输出结果:



分析该代码 :


1.3的补码: 0000 0000 0000 0000 0000 0000 0000 0011.

2.5的补码: 0000 0000 0000 0000 0000 0000 0000 0101.

3.经过按位与的操作,得到的补码为:0000 0000 0000 0000 0000 0000 0000 0001.


故输出结果为1.

按位或:|

运算规则:只有两个数的二进制同时为0,结果才为0,否则为1。(负数按补码形式参加按位或运算)

实例:

#include<stdio.h>
int main()
{
  int a = 3 | 5;
  printf("%d  ", a);
  return 0;
}

输出结果:
 
分析该代码:


1.3的补码:0000 0000 0000 0000 0000 0000 0000 0011.

2.5的补码:0000 0000 0000 0000 0000 0000 0000 0101.

3.经过按位或的操作,得到的补码为: 0000 0000 0000 0000 0000 0000 0000 0111.


故输出结果为7.

按位异或:^

运算规则:当两个数的二进制相同时,结果为0,否则为1。(负数按补码形式参加按位异或运算)

实例:

#include<stdio.h>
int main()
{
  int a = -3 ^ 5;
  printf("%d  ", a);
  return 0;
}

输出结果:
 
分析该代码:


1.-3的补码:1111 1111 1111 1111 1111 1111 1111 1101.

2.5的补码:0000 0000 0000 0000 0000 0000 0000 0101.

3.经过按位异或得到的补码为:1111 1111 1111 1111 1111 1111 1111 1000


故输出结果为-8.


这篇博客如果对你有帮助,给博主一个免费的点赞以示鼓励,欢迎各位🔎点赞👍评论收藏⭐️,谢谢!!!

如果有什么疑问或不同的见解,欢迎评论区留言哦。

相关文章
|
数据采集
JSoup 爬虫遇到的 404 错误解决方案
JSoup 爬虫遇到的 404 错误解决方案
|
JavaScript
vue3-在自定义hooks使用useRouter 报错问题
vue3-在自定义hooks使用useRouter 报错问题
2526 0
|
5月前
|
存储 NoSQL Go
英伟达谷歌都在用的(开源特征存储平台Feast)-架构学习指南
欢迎来到Feast的世界!这是一个开源的生产级机器学习特征存储系统,专为解决特征数据高效管理与服务而设计。本指南将带你从零掌握其架构、核心概念与实战技巧,助你像架构师一样思考,像工匠一样编码,轻松应对训练与推理的一致性挑战。
957 2
|
4月前
|
缓存 编解码 资源调度
《WebGL浏览器渲染优化指南:解决隐性损耗的底层逻辑与实操技巧》
WebGL应用的隐性性能损耗,源于浏览器渲染机制特性、资源调度缺陷与沙箱环境约束的叠加作用,表现为帧率不稳、交互延迟等渐进式体验滑坡。这类性能债潜藏于渲染管线各环节:顶点属性冗余传输消耗带宽、纹理格式与维度设计不合理引发采样拥堵、着色器动态分支抑制GPU并行效率、频繁状态切换累积内核开销,而传统“降配优化”效果有限。本文结合实践案例,剖析这些隐形损耗的底层成因,提出针对性解决方案:通过顶点属性打包、纹理格式适配、着色器算法重构、精细化状态管理等策略,实现资源调度与渲染机制的精准适配。
241 10
|
算法 API 调度
深入探索:在std::thread中创建并管理QEventLoop的全面指南(一)
深入探索:在std::thread中创建并管理QEventLoop的全面指南
557 1
|
机器学习/深度学习 人工智能 编解码
Text to Bark:让狗狗听懂人话!全球首个AI"狗语"生成器,137种狗狗口音任君挑选
ElevenLabs推出的Text to Bark是全球首个能将文本转换为逼真狗吠声的AI模型,支持多种犬种选择并适配智能家居设备,其核心技术基于深度神经网络训练。
2402 15
Text to Bark:让狗狗听懂人话!全球首个AI"狗语"生成器,137种狗狗口音任君挑选
|
弹性计算 固态存储 NoSQL
阿里云服务器系统盘ESSD AutoPL、ESSD和ESSD Entry云盘有什么区别?如何选择?
阿里云服务器系统盘提供ESSD Entry、ESSD云盘和ESSD AutoPL三种类型,性能与适用场景各不相同。ESSD Entry云盘性价比高,适合开发测试;ESSD云盘分为PL0-PL3四个级别,适用于时延敏感或I/O密集型业务;ESSD AutoPL云盘实现容量与性能解耦,支持自定义预配置性能及突发性能,最高可达100万IOPS。选择时可根据实际需求与预算决定,经济型实例推荐ESSD Entry,高性能场景建议ESSD云盘或ESSD AutoPL。具体价格与参数可参考阿里云官方文档。
|
负载均衡 算法 Linux
深入理解Linux内核进程CPU负载均衡机制(上)
深入理解Linux内核进程CPU负载均衡机制
|
JavaScript
Vue路由传参实战指南:三种常用方法示例演示
Vue路由传参实战指南:三种常用方法示例演示
962 0
|
数据安全/隐私保护
APP - 支付宝怎么延时转账?能否撤回转账?
APP - 支付宝怎么延时转账?能否撤回转账?
3862 0
APP - 支付宝怎么延时转账?能否撤回转账?