wordpress博客福利网整站源码,中国十大装修公司加盟,做网站高亮,中山网站建设费用目录 1.C语言位运算符表 2.C语言移位运算符详解#xff08;配实例作业#xff09; 3.C语言按位与运算符详解 4.C语言|按位或运算符详解 5.C语言^按位异或运算符详解 6.C语言~取反运算符详解 C语言位运算这一章主要介绍C语言位运算符表、C语言移位运算符、C语言按…目录 1.C语言位运算符表 2.C语言移位运算符详解配实例作业 3.C语言按位与运算符详解 4.C语言|按位或运算符详解 5.C语言^按位异或运算符详解 6.C语言~取反运算符详解 C语言位运算这一章主要介绍C语言位运算符表、C语言移位运算符、C语言按位与运算符、C语言|按位或运算符、C语言^按位异或运算符以及C语言~取反运算符。与其他运算符不同C语言中位运算顾名思义是以数值的二进制位为单位进行操作的包含左移、右移、~按位取反、按位与、|按位或、^按位异或共六种运算符。在本章末尾给大家做了C语言结课设计安排。 1.C语言位运算符表
与其他运算符不同C语言中位运算顾名思义是以数值的二进制位为单位进行操作的包含左移、右移、~按位取反、按位与、|按位或、^按位异或共六种运算符。
功能如下
左移运算符向左即高位移位右侧补0右移运算符向右即低位移位左侧补0按位取反~如名即0变11变0按位与相对应的两个位都为1则为1反之为0按位或|相对应的两个位至少有一个为1即为1反之为0按位异或^相对应的两个位相同为0相异不同为1
2.C语言移位运算符详解配实例作业
和运算符通过箭头方向可以很好的辨别分别是C语言位运算符中的左移运算符和右移运算符如表达式132它的运算过程为13的用二进制四个字节不考虑符号表示为0000 0000 0000 0000 0000 0000 0000 1101那么向左移两位右侧补0则变为0000 0000 0000 0000 0000 0000 0011 0100 换成十进制即变为52大家可以自行验证。
同理再举一个例子如表达式253表示25的二进制位向右移三位由0000 0000 0000 0000 0000 0000 0001 1001变为0000 0000 0000 0000 0000 0000 0000 0011即十进制3。
大家可以自行计算验证也可以用过代码实现如下
#includestdio.h
int main()
{int a,b;a132;b253;printf(a%d,b%d\n,a,b);return 0;
}
运行结果如下
a52,b3
移位运算符的作用
1. 左移N位的本质是乘以2的N次方。
2. 右移N位的本质是除以2的N次方。 题目描述: 读入一个10进制正整数将其进行二进制表示取其从右端开始的第4至7位别忘记是从0开始数的输出这一部分的10进制表示。 c 语言实现代码
#include stdio.hint main()
{int n;scanf(%d, n);printf(%d\n, (n 4) 15);return 0;
}
更多相关例题可以私聊我
3.C语言按位与运算符详解
按位与运算符有点和前面学过的逻辑与运算符类似只有一个都是同为1则为1。不同的是按位相互运算。如35运算过程如下
3 0000 0000 0000 0000 0000 0000 0000 0011
5 0000 0000 0000 0000 0000 0000 0000 0101------------------------------------------0000 0000 0000 0000 0000 0000 0000 0001
可以看到35的结果即十进制1。
大家可以尝试其他数值实验代码如下
#includestdio.h
int main()
{int a;a35;printf(a%d\n,a);return 0;
} 运行结果如下
a1
按位与运算符的作用
1. 清零
我们可以对某一个数与0进行按位与运算由于两个位都为1才为1因此最终全部位都变为0起到清零的作用
2. 取指定位
如某些存储场景下“第1~3位表示xxxx“”我们需要取出1~3位则可以让原数值与数字7进行按位与运算得到的结果即是原数值的1~3位的值。
3. 判断奇偶
可以发现数字的奇偶取决于二进制位的最低一位是1还是0因此只需要与1按位与运算判断是1是0即可得知奇偶。
4.C语言|按位或运算符详解
按位或运算符|同样它也与我们前面学过的逻辑或运算符类似只有一个竖线表示作用位两个对应的二进制位有一个为1结果即为1。如8|7的运算过程可以如下表示
8 0000 0000 0000 0000 0000 0000 0000 1000
7 0000 0000 0000 0000 0000 0000 0000 0111------------------------------------------0000 0000 0000 0000 0000 0000 0000 1111
可以看到最终的二进制结果换算成十进制即为15并不是单纯87得来的哦
代码如下
#includestdio.h
int main()
{int a;a8|7;printf(a%d\n,a);return 0;
}
运行结果如下
a15
按位或运算符的作用
对一个数字的指定位置为1如“某个数字的第七位”表示开关原先是0需要改为1的状态即可以将这个数字与64按位或即可得到第七位变为1其余位的值依旧不变。
5.C语言^按位异或运算符详解
^表示按位异或运算符顾名思义相异即不同则为1反之为0。
例如15和16进行异或运算运算过程如下
15 0000 0000 0000 0000 0000 0000 0000 1111
16 0000 0000 0000 0000 0000 0000 0001 0000
^ ------------------------------------------0000 0000 0000 0000 0000 0000 0001 1111 可以看到经过按位异或运算后其结果变成十进制应为31大家务必弄清楚运算过程然后再上机验证代码如下
#includestdio.h
int main()
{int a;a15^16;printf(a%d\n,a);return 0;
}
运算结果如下
a31
异或运算符的作用
1. 指定位数的翻转
如想对某个数字的低4位进行翻转则可以将这个数字与15二进制为00001111进行按位异或运算既可以将原数字的低四位进行翻转即高四位不变低四位0变11变0。
2. 与0异或还是原值
大家可以自行实验一个数字与0进行异或结果还是原值。
3. 交换两个数字
除了之前我们学习交换两个数字需要第三个变量做中介之外如今可以通过异或运算进行代码如下
#includestdio.h
int swap(int *a,int *b)
{if (*a!*b){*a*a^*b;*b*b^*a;*a*a^*b;}return 0;
}
int main()
{int a5;int b5;swap(a,b);printf(a%d b%d\n,a,b);return 0;
}可以看到原先a为3b为5运行后得出
a5 b5
6.C语言~取反运算符详解
~取反运算符是对数值的二进制位进行取反是第一个单目运算符因为只有一个运算对象运算过程是即0变为11变为0非常好理解。
~10
~01
大家可以尝试理解下面代码
#includestdio.h
int main()
{unsigned int a1;printf(~a%u\n,~a);return 0;
}
为了便于理解例子代码不考虑符号位运算结果如下
~a4294967294
通过学习之前的知识相信大家已经有所积累那么下面就进入结课的环节。 结课设计(多选一) 1. 学生信息管理系统 2. 模拟35选7彩票系统 3. 24点、数独小游戏 4. 贪吃蛇游戏 5. 俄罗斯方块 之后会出相关的c语言代码示例