一、C语言中的位运算符
C语言中的位运算符共有六种,分别是:
- 按位与(&)
- 按位或(|)
- 按位异或(^)
- 取反(~)
- 左移(<<)
- 右移(>>)
下面我将分别演示几个例子:
-
按位与(&):两个对应位都为1时,结果才为1;否则结果为0。
0X07&0X11=0X01
0x07是十六进制表示法,等同于十进制的7,二进制的0111;而0x11等同于十进制的17,二进制的00010001。若进行按位与运算,则只有当两个数的对应位都为1时,结果才为1,否则为0。因此0x07 & 0x11的运算结果为0x01,即二进制的00000001。解释如下:
-
按位或(|):两个对应位只要有一个为1,结果就为1;否则结果为0。
0X07&0X11=0X17
-
按位异或 (^):两个对应位相同则结果为0,不同则结果为1。
0X07^0X11=0X16
-
取反(~):将一个数的每一位取反,即0变成1,1变成0。
~(0X07)= 0XF8
-
左移运算符(<<):左移n位就是乘以2的n次方。 把左边的运算数的各二进位全部左移若干位,由<<右边的数指定移动的位数,高位丢弃,低位补0。
0X71<<2= 0X1C4
-
右移运算符(>>):右移n位就是除以2的n次方。其功能是把左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。
0X11>>2= 0X04
执行0x11>>2的右移位运算,将二进制数向右移动2位(在低位补零),得到结果为0000 0100,转换为十六进制数为0x04。因此,0x11>>2的运算结果为0x04,其实际代表的二进制数为0000 0100。这个结果是通过将二进制数中每一位向右移两位来实现的,被移出的位被丢弃,空出的高位用0填充。
本文来自博客园,作者:种星记,转载请注明原文链接:https://www.cnblogs.com/zhongxingji/p/17697231.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)