位操作符详解(C语言)

前言
C语言中的位操作符是用来对数据的二进制表示进行位级操作的运算符。这些操作符包括位与(&)、位或(|)、位异或(^)、位取反(~),这些位操作符可以用来进行各种位级操作,如获取二进制表示中的特定位、将特定位设置为0或1、交换变量的值等。它们在底层编程、位级编码和优化算法中经常被使用。今天我就来给大家分享关于位操作符的使用。
在这里插入图片描述

文章目录

  • 1,&
  • 2,|
  • 3,^
  • 4,~
  • 尾声

1,&

&是按位与操作符可以对两个操作数的二进制表示进行位与操作,首先我们都知道二进制只有数字0和1,那么&是怎么操作的呢?
我们举个例子,下面是8和11的二进制。
8: 1000
11:1011

&叫做按位与,所以我们要按照两个二进制对应的位置进行与操作如8的1对应11的1,0对应0,0对应1,0对应1(我是按从前往后的顺序说的便于理解)。
当某一位都是1的时候,与操作后的结果为1,当一方是1一方是0时,结果为0,当双方都是0时结果还是0,我们可以将其想象成一个串联电路,0和1时开关,当为1时开关闭合电流才能通过。
在这里插入图片描述

所以8&11的结果为1000即8

2,|

|是按位或操作符,与&类似,我们再用8和11举个例子
8: 1000
11:1011

当某一位双方都是1时,结果为1,当一方为1一方为0时,结果为1,当双方都是0时,结果为0.这我们就可以想象成一个并联电路,只要开一个开关,电流就能流通。
在这里插入图片描述

所以8|11的结果为1011即11

3,^

^是按位异或操作符,我们还是用8和11来举例子。
8: 1000
11:1011

当某一位双方都为1或者都为0时,结果为0,当双方不同(即一个是1一个是0)时,结果为1。即某一位相同时,结果为0,不同时结果为1.
所以8&11的结果为0011,即结果为3。

4,~

~是按位取反操作符,拿1和-1举个例子。
1: 00000000 00000000 00000000 00000001
-1:111111111 11111111 11111111 11111111

取反的意思就是0变1,1变0,所以1和-1按位取反后会分别变成:
1:11111111 11111111 11111111 11111110
-1:00000000 00000000 00000000 00000000

那么我们能发现1 = (-1)+1,-1=(1)+1,这样就可以轻松实现正数和负数的转换了。

尾声

关于位操作符的分享我们就到这里,如果觉得博主讲的不错,千万不要忘记给博主一个关注,点赞,收藏哦~,小伙伴们,我们下期再见!

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

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

相关文章

华为选择“力图生存”!国家队正式出手,外媒:鸿蒙将全面爆发

引言 在国际舞台上,国与国之间的关系错综复杂,舆论的力量也十分重要。近日,关于华为鸿蒙系统失去用户的预测成为热议的话题。这背后所面对的挑战和对抗也异常严峻。本文将解释鸿蒙系统的崛起与前景展望,揭示其中的机遇与挑战。 …

9ACL访问控制列表

为什么要有访问控制(Access Control List)? 因为我可能在局域网中提供了一些服务,我只希望合法的用户可以访问,其他非授权用户不能访问。 原理比较简单,通过对数据包里的信息做过滤,实现访问控…

《每天一分钟学习C语言·三》

1、 scanf的返回值由后面的参数决定scanf(“%d%d”,& a, &b); 如果a和b都被成功读入,那么scanf的返回值就是2如果只有a被成功读入,返回值为1如果a和b都未被成功读入,返回值为0 如果遇到错误或遇到end of file,返回值为EOF…

华清远见作业第十三天

1.使用多文件编辑, 定义商品信息:商品名称,商品单价,商品购买个数,商品描述,循环输入购买的商品,按单价排序,输出商品信息,计算最贵的商品以及一共花了多少钱? 在create函数&#x…

【科技前沿】数字孪生技术改革智慧供热,换热站3D可视化引领未来

换热站作为供热系统不可或缺的一部分,其能源消耗对城市环保至关重要。在双碳目标下,供热企业可通过搭建智慧供热系统,实现供热方式的低碳、高效、智能化,从而减少碳排放和能源浪费。通过应用物联网、大数据等高新技术,…

C : DS二叉排序树之删除

Description 给出一个数据序列,建立二叉排序树,并实现删除功能 对二叉排序树进行中序遍历,可以得到有序的数据序列 Input 第一行输入t,表示有t个数据序列 第二行输入n,表示首个序列包含n个数据 第三行输入n个数据…

vue-springboot-java电力员工安全施工培训课程考试管理系统

本电力员工安全施工培训管理系统是为了提高员工查阅信息的效率和管理人员管理信息的工作效率,可以快速存储大量数据,还有信息检索功能,这大大的满足了员工和管理员这二者的需求。操作简单易懂,合理分析各个模块的功能,…

Ubuntu 常用命令之 zip 命令用法介绍

Ubuntu系统下的zip命令是用来压缩文件的。这个命令可以将一个或多个文件或者目录压缩成一个.zip文件,也可以将整个目录树压缩成一个.zip文件。 zip命令的基本格式 zip [选项] [压缩文件名] [要压缩的文件或目录...]zip命令的主要参数有 -r:递归压缩&a…

2023年12月20日雄县采样

刚去的时候,找不着冬小麦地,因为积雪太厚了,小麦都被埋住了。 翻了几波地失败了几个点,也渐渐得出经验了,像下图这种有田垄的大块连成片农田,“高标准”农田。一定是种植小麦的。 刨开土能看到小麦就和挖到…

C语言——内存函数的使用与模拟实现

大家好,我是残念,希望在你看完之后,能对你有所帮助,有什么不足请指正!共同学习交流 本文由:残念ing 原创CSDN首发,如需要转载请通知 个人主页:残念ing-CSDN博客,欢迎各位…

暴雨AI服务器:推动大模型算力底座发展

语言大模型作为人工智能领域的重要分支,其强大的自然语言处理能力和模仿人类的对话决策能力,正逐渐成为人们的关注焦点。近日,据央视新闻报道,工业和信息化部赛迪研究院数据显示,今年我国语言大模型市场规模实现较快提…

25 在Vue3中使用生命周期函数

概述 Vue 组件生命周期事件发生在组件从创建到删除的生命周期中。必要时,我们可以在组件生命周期的每个阶段添加回调和副作用。 组件事件触发顺序 setup 该事件在所有其他钩子(包括 beforeCreate)之前运行。它无法访问此实例,…