21.《C语言》——【位操作符】


🌻开场语

亲爱的读者,大家好!我是一名正在学习编程的高校生。在这个博客里,我将和大家一起探讨编程技巧、分享实用工具,并交流学习心得。希望通过我的博客,你能学到有用的知识,提高自己的技能,成为一名优秀的程序员。如果你有任何疑问或建议,请随时在评论区留言,让我们一起成长进步!现在,让我们开始这场知识之旅吧!


在这里插入图片描述
个人主页:FEN03
文章专栏:C语言


文章目录

  • 🌻开场语
  • 🌻前言
  • 🌻位操作符
    • 1. 🌹&(按位与)
    • 2. 🌹| (按位或)
    • 3. 🌹^(按位异或)
    • 4. 🌹~(按位取反)
  • 🌻总结
  • 🌻结束语


🌻前言

本文章,将会逐一介绍什么是位操作符,如何去用位操作符。文章内容仅是个人学习见解,如有错误,还请各位大佬指出!


🌻位操作符

位操作符有4种:

  1. &(按位与)
  2. | (按位或)
  3. ^(按位异或)
  4. ~(按位取反)

位操作符都是对二进制位进行操作的
注意:位操作符只能用于整数


1. 🌹&(按位与)

按位与是一个双目运算符,按位与是对二进制位进行操作,那么它的操作规则是:对位的二进制位,有0为0,相同为1则为1

例子1:

#include<stdio.h>
int main()
{int a = -3; int b = 6;  int c = a & b; printf("%d\n", c); return 0; 
}

运行结果:

在这里插入图片描述

为什么会得到4呢?
解析:

  1. 因为是对二进制位操作的,所以我们需要写出数值的二进制位,-3的二进制位是:
    在这里插入图片描述

  2. 6的二进制位:在这里插入图片描述

  3. 进行按位与: 在这里插入图片描述

最终的结果得到:4


2. 🌹| (按位或)

按位或是一个双目运算符,是对二进制位操作,规则是:对位的二进制位,有1为1,相同0为0

例子1:

#include<stdio.h>
int main()
{int a = -6;  int b = 3;  int c = a | b;  printf("%d\n", c); return 0;
}

运算结果:

在这里插入图片描述

是怎么得到5呢?
解析:

  1. 首先,我们需要写出数值的二进制形式,-6的二进制:
    在这里插入图片描述
  2. 然后写出3的二进制:
    在这里插入图片描述
  3. 进行按位或:
    在这里插入图片描述
    这样最终的结果就能够得到:-5

3. 🌹^(按位异或)

按位异或也是双目运算符,也是对二进制位操作,规则是:相同为0,相异为1

例子1:

#include<stdio.h>
int main()
{int a = -4; int b = 6; int c = a ^ b; printf("%d\n", c);return 0;
}

运行结果:

在这里插入图片描述

为什么能够得到:-6
解析:

  1. 写出-4的二进制位:
    在这里插入图片描述
  2. 写出6的二进制:
    在这里插入图片描述
  3. 进行按位异或:
    在这里插入图片描述

最终得到的值是:-6


对于按位异或,有一个知识补充:

例子1:

#include<stdio.h>
int main()
{int a1 = 1;  int a2 = 2; int a3 = 3; int a4 = 4;int b = 0;int c1 = a1 ^ b;  int c2 = a2 ^ b;  int c3 = a3 ^ b;  int c4 = a4 ^ b; printf("%d\n", c1);  printf("%d\n", c2);  printf("%d\n", c3);  printf("%d\n", c4);  return 0; 
}

运行结果:

在这里插入图片描述

看结果,我们可以得出,n ^ 0 = n ,也就是一个数如果按位异或0,得到的结果是本身。


例子2:

#include<stdio.h>
int main()
{int a = 5;int b = a ^ a;printf("%d\n", b); int a1 = 6;int b1 = a1 ^ a1; printf("%d\n", b1); int a2 = 4;int b2 = a2 ^ a2;printf("%d\n", b2); return 0; 
}

运行结果:

在这里插入图片描述

我们可以得出结论:n ^ n = 0,也就是一个数如果按位异或本身,得到的结果是0


4. 🌹~(按位取反)

按位取反是单目运算符,同样的是对二进制位进行操作,规则是:0为1,1为0

例子1:

#include<stdio.h>
int main()
{int a = 8;  int b = ~a;    printf("%d\n", b);  return 0; 
}

运算结果:

在这里插入图片描述

是怎么得到:-9 的呢?
解析:

  1. 写出8的二进制:
    在这里插入图片描述
  2. 进行按位取反:
    在这里插入图片描述

最终的结果就是:-9


🌻总结

  1. &(按位与),|(按位或),^(按位异或),这三个都是双目运算符,操作数是2个。
  2. ~(按位取反)是单目运算符,操作数是1个。
  3. 这些操作符都需要了解规则,其中按位异或复杂一点,需要多了解。

🌻结束语

非常感谢您花时间阅读我的博客,希望我的分享能为您带来收获。如果您对本文有任何想法或疑问,欢迎在评论区留言交流。如果您喜欢我的博客,请继续关注,我会定期更新更多精彩内容。最后,别忘了行动起来的力量,让我们一起实践这些方法,见证自己的成长和进步!

再见,祝您生活愉快!

如有错误,或者疑惑,还请评论区留言,或者私信即可,感谢支持!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/39411.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

今天不看文章,明天变垃圾(明天收费)-----字节数据分析发展过程中所遭遇的挑战

字节数据分析发展过程中所遭遇的挑战 三个核心议题&#xff1a; 海量数据分析性能&#xff1a;会议指出Spark分析性能不足成为了一个显著问题&#xff0c;尤其是在需要毫秒级响应的业务场景中。实时导入与查询能力&#xff1a;目前Kylin只能以T1的形式提供分析服务&#xff0…

蓝牙资讯|苹果Apple Pencil新专利:用笔套扩展传感器 / 续航等模块化方案

根据美国商标和专利局最新公示的清单&#xff0c;苹果公司获得了一项 Apple Pencil 的专利&#xff0c;探索了模块化设计方案&#xff0c;用户未来可以根据自身需求或者使用场景&#xff0c;随心更换 Pencil 的模块&#xff0c;达到不同的效果。 苹果在专利中表示笔套内置传感器…

Docker实战教程(一)

文章目录 Docker实战教程一、Docker简介二、Docker安装过程1. Windows上安装Docker2. Linux上安装Docker三、Docker基本概念四、Docker常用命令五、Docker常见应用场景六、总结Docker实战教程 Docker是一种开源的容器化平台,能够自动化应用程序的部署、管理和隔离。它使得开发…

jQuery UI 简介

jQuery UI 简介 1. 引言 jQuery UI 是一个建立在 jQuery JavaScript 库之上的开源小部件和交互库,旨在创建高度交互的网页。它提供了一系列预先设计好的小部件,如拖放、排序、对话框、工具提示等,以及用于构建复杂用户界面的交互方法。jQuery UI 的设计目标是简化 HTML 文…

图书电商引入实在Agent:自动化运营提效80%,节省人天1000+

某知名教辅图书品牌深耕中小学教辅图书领域&#xff0c;是中国最具影响力的教育出版策划与发行集团之一&#xff0c;以丰富的图书品类&#xff0c;满足了小学、初中、高中各年龄段读者多元化的阅读需求。 2023年&#xff0c;该品牌在运营、客服等多部门超60个场景中部署实在Ag…

2024高考作文题“人工智能”

今年开年到现在&#xff0c;明显的感受就是&#xff0c;咨询人工智能机器人的客户比往年更多了。什么原因&#xff0c;是因为人工成本太高了&#xff0c;今年整体经济环境变差&#xff0c;招不起人&#xff0c;所以想用AI机器人来降低用工成本吗&#xff1f; 还是说因为语音线路…

嵌入式Linux:ARM体系简介

目录 1. 体系结构 2. 指令集 3. 工作状态 4. 工作模式 5. 寄存器 6. 异常与中断 其他 DOS命令 Linux 命令 1. 体系结构 冯-诺依曼体系结构是把数据与指令都 存放在同一存储区域,取数据与取指令利用同一数据总线,结构简单,但速度较慢,取址不能同时取数据。 哈弗结构…

项目进度管理(信息系统项目管理师)

定义活动的输出&#xff1a;活动清单、活动属性、里程碑清单定义活动的输入包括进度管理计划、范围基准、事业环境因素、组织过程资产定义活动的工具与技术包括专家判断、分解、滚动式规划、会议分解是一种把项目范围和项目可交付成果逐步划分为更小、更便于管理的组成部分的技…

鸿蒙开发过程遇到的坑

LazyForEach键值设置应该为 (item: FreelyPurchaseProductDataModel) > JSON.stringify(item) 否则列表修改了数量不会刷新

银湖资本在中国设立公司运营点,全球投资巨头的新篇章!

近日&#xff0c;全球知名私募股权投资公司银湖资本宣布在中国设立公司运营点。一点是银湖资本在国内安置了两个办事营业点&#xff0c;一个在黑龙江&#xff0c;一个在广州等一线城市。这一举动标志着银湖资本在全球范围内的扩展进入了新的阶段&#xff0c;同时也展示了其对中…

SerialportToTcp①

窗体 效果&#xff1a;串口和网口旁边的是panel当客户端或者服务器发送消息的时候会闪烁&#xff0c;下面的的textbox当接收到接受或者发送的数据会增加数量&#xff0c;心跳机制单选框可以开关&#xff0c;可设置心跳间隔和内容&#xff0c;重置按钮重置串口数据&#xff0c;…

leetcode 404周赛 合并两棵树后最小直径「图论」「dp」

3203. 合并两棵树后的最小直径 题目描述&#xff1a; 题如其意&#xff0c;给你两棵树&#xff0c;你可以从两棵树中各挑一个点出来&#xff0c;连一条边&#xff0c;形成一个新的树&#xff0c;问你最小直径是多少 1 < n , m < 1 0 5 1 < n, m < 10^5 1<n,…

PDM系统中物料分类与编码规则生成方案

在企业管理软件中&#xff0c;PDM系统是企业管理的前端软件&#xff0c;用于管理研发图纸、BOM等数据&#xff0c;然后生成相关物料表或BOM&#xff0c;递交给后端ERP系统进行生产管理。在PDM系统中&#xff0c;有两种方式可以生成物料编码。 1第一种是用户可以通过软件接口将…

基于selenium+python实现自动化测试

Selenium 是一个用于自动化Web应用程序测试的工具包&#xff0c;它提供了一套API&#xff0c;允许开发者编写脚本来模拟用户与浏览器的交互。这些API可以控制浏览器执行各种操作&#xff0c;如导航、点击、输入文本、滚动页面等。使用Selenium结合Python进行自动化测试是一个常…

汽车免拆诊断案例 | 2021款路虎揽胜运动版车遥控及一键起动功能失效

故障现象 一辆2021款路虎揽胜运动版车&#xff0c;搭载AJ20-P6H3L发动机&#xff0c;累计行驶里程约为2.5万km。车主反映&#xff0c;使用智能钥匙无法解锁车门&#xff0c;使用机械钥匙打开车门&#xff0c;进入车内&#xff0c;发现一键起动功能也失效&#xff1b;根据组合…

将excel表格转换为element table(下)

在‘将excel表格转换为element table(上)’我们把excel 转换后通过数据重构绑定到了element table上&#xff0c;现在要做的就是根据源文件进行行列进行合并操作 先看看最终处理的结果 这里在一步步分析实现步骤。 先分析一下合并的逻辑 大致思路理理如上。 思路有了接下来…

回溯法:生成一个字符串的所有排列组合

问题&#xff1a;字符串abcd怎样获取abcd、acbd、acdb、adbc、adcb、bacd、bcad、bdac、bdca、cabd、cdba、cadb、cbda等&#xff0c;所有排列。 使用回溯法来生成一个字符串的所有排列 import java.util.ArrayList; import java.util.List;public class Permutations {publi…

雷诺RENAULT EDI 需求分析

雷诺&#xff08;Renault&#xff09;是一家法国汽车制造公司&#xff0c;成立于1899年。作为世界知名的汽车品牌&#xff0c;雷诺生产各种类型的车辆&#xff0c;包括乘用车、商用车和电动车。公司总部位于法国布洛涅-比扬古。雷诺以其创新和高质量的产品在全球市场享有盛誉&a…

3-数据提取方法1(json)(6节课学会爬虫)

3-数据提取方法1&#xff08;json&#xff09;&#xff08;6节课学会爬虫&#xff09; 1&#xff0c;Json2&#xff0c;哪里会返回json的数据&#xff08;值得尝试的操作&#xff09;3&#xff0c;Json字符串转换成字典或python类型进行数据提取&#xff08;1&#xff09;Json.…

农夫山泉:玩一个“弯道超车”的“新游戏”

今年夏天&#xff0c;有一款产品的爆火&#xff0c;仿佛上演了一出“欧亨利式”的好戏&#xff0c;既出人意料又在情理之中。它就是农夫山泉的“冰杯”。 在小红书搜索关键词“冰杯”后&#xff0c;我们会发现&#xff0c;相关笔记达到4万篇&#xff0c;相关商品超过8000件&am…