《C语言程序设计教程》第10章 位运算

第10章位运算
第10章 位 运 算

位运算是指对二进制位进行的运算。每个二进制位中 只能存放0或1。因此,位运算就是对二进制数的运算。通 常,将一个数据用二进制数表示后,最右边的二进制位称 为最低位(第0位),最左边的二进制位为最高位。 151413121110987654321 图10.1微机中整数的二进制位表示
位运算是指对二进制位进行的运算。每个二进制位中 只能存放0或1。因此,位运算就是对二进制数的运算。通 常,将一个数据用二进制数表示后,最右边的二进制位称 为最低位(第0位),最左边的二进制位为最高位。 图10.1 微机中整数的二进制位表示 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

10.1二进制位运算 10.2位段 10.3程序举例
10.1 二进制位运算 10.2 位 段 10.3 程序举例

10.1二进制位运算 在C语言中共提供了6种位运算符,如表10.所示。 表10.1 位运算符 意义 按位与 按位或 按位异或 按位取反 左移 右移 没回日录
10.1 二进制位运算 在C语言中共提供了6种位运算符,如表10.1所示。 表10.1 位运算符 意 义 & | ^ ~ > 按位与 按位或 按位异或 按位取反 左移 右移

(1)在这6种位运算符中,其中按位取反是单目运算符, 只有一个运算对象,其他均为双目运算符,有两个运算对象 (2)位运算的运算对象只能是整型(包括int, short, ong和 unsigned)或字符型数据,而不能是实型数据。 (3)各位运算符的优先级比较分散,与其他运算符一起, 其优先级从高到低如下: 逻辑非()→>按位取反()→算术运算符→左移运算符()→>关系运算符→按位与运算符(&),按位异 或运算符(^),按位或运算符()-&&与→赋值运算符
(1)在这6种位运算符中,其中按位取反是单目运算符, 只有一个运算对象,其他均为双目运算符,有两个运算对象。 (2)位运算的运算对象只能是整型(包括int,short, long和unsigned)或字符型数据,而不能是实型数据。 (3)各位运算符的优先级比较分散,与其他运算符一起, 其优先级从高到低如下: 逻辑非(!)→按位取反(~)→算术运算符→左移运算符(>)→关系运算符→按位与运算符(&),按位异 或运算符(^),按位或运算符(|)→&&与|| →赋值运算符

1.“按位与”运算符(&) “按位与”的运算符为“&”。其运算规则是:若两个运算 对象的对应二进制位均是1,则结果的对应位是1,否则为0。 利用“按位与”运算可以实现以下功能: (1)取出数据中指定的位 (2)将数据中的指定位清零
1.“按位与”运算符(&) “按位与”的运算符为“&”。其运算规则是:若两个运算 对象的对应二进制位均是1,则结果的对应位是1,否则为0。 利用“按位与”运算可以实现以下功能: (1)取出数据中指定的位 (2)将数据中的指定位清零

按位或”运算符(|) “按位或”的运算符为“{”。其运算规 则是:若两个运算对象的对应二进制位中 有一个是1,则结果的对应位是1,否则为0
2.“按位或”运算符(|) “按位或”的运算符为“|”。其运算规 则是:若两个运算对象的对应二进制位中 有一个是1,则结果的对应位是1,否则为0

例10.2下列C程序的功能是将整型数组中所有元素转换 为不小于它的最小奇数,并显示输出。。 #include ' stdio. h main {intk,a10]={23,14,24,31,46,55,33,68,27,40} for(k=0;k<10;k++) printf("%5d", a[) printf(in"); for(k=0;k<10;k++) a[k]=a[kJ0x01; for(k=0;k<10;k++) printf("%5d", a[kD; printf("in")
例10.2 下列C程序的功能是将整型数组中所有元素转换 为不小于它的最小奇数,并显示输出。。 #include "stdio.h" main() { int k,a[10]={23,14,24,31,46,55,33,68,27,40}; for (k=0;k<10;k++) printf("%5d",a[k]); printf("\n"); for (k=0;k<10;k++) a[k]=a[k]|0x01; for (k=0;k<10;k++) printf("%5d",a[k]); printf("\n"); }

3.“按位异或”运算符(^) “按位异或”的运算符为“^”。其运算规则是:若两个 运算对象的对应二进制位不相等,则结果的对应位是1,否 则为0。 。“按位异或”运算具有以下几个性质: (1)使数据中的某些位取反,即将0变为1,1变为0。 2)同一个数据进行异或运算后,其结果为0。利用异或 运算的这个性质,可以将变量清零 (3)可以实现交换两个变量的值:
3.“按位异或”运算符(^) “按位异或”的运算符为“^” 。其运算规则是:若两个 运算对象的对应二进制位不相等,则结果的对应位是1,否 则为0。 “按位异或”运算具有以下几个性质: (1)使数据中的某些位取反,即将0变为1,1变为0。 (2)同一个数据进行异或运算后,其结果为0。利用异或 运算的这个性质,可以将变量清零。 (3)可以实现交换两个变量的值:

4.“按位取反”运算符() “按位取反”的运算符为“~”。其运算规则是:将运 算对象中的各二进制位值取反,即将0变为1,1变为0
4.“按位取反”运算符(~) “按位取反”的运算符为“~”。其运算规则是:将运 算对象中的各二进制位值取反,即将0变为1,1变为0
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《多媒体技术与应用》第三章 音频与图像信息的获取与处理.ppt
- 《多媒体技术与应用》第七章 网络多媒体应用设计.ppt
- 《多媒体技术与应用》第六章 多媒体创作工具.ppt
- 《多媒体技术与应用》第五章 多媒体应用设计.ppt
- 《多媒体技术与应用》第四章 视频与动画的编辑与制作.ppt
- 《多媒体技术与应用》第二章 多媒体的硬件和软件环境的建立.ppt
- 《多媒体技术与应用》第一章 多媒体基础.ppt
- 《多媒体技术与应用》目录.ppt
- 天津大学:《数值计算》课程教学资源(讲稿)第五章 常微分方程数值解(5.2)Runge-Kuta法.pdf
- 天津大学:《数值计算》课程教学资源(讲稿)第五章 常微分方程数值解(5.1).pdf
- 天津大学:《数值计算》课程教学资源(讲稿)第三章 插值法和最小二乘法(3.7)数据拟合(最小二乘法).pdf
- 天津大学:《数值计算》课程教学资源(讲稿)第三章 插值法和最小二乘法(3.6)三次样条插值.pdf
- 天津大学:《数值计算》课程教学资源(讲稿)第三章 插值法和最小二乘法(3.5)Hermite插值法.pdf
- 天津大学:《数值计算》课程教学资源(讲稿)第三章 插值法和最小二乘法(3.4)Newton插值法.pdf
- 天津大学:《数值计算》课程教学资源(讲稿)第三章 插值法和最小二乘法(3.3)分段插值法.pdf
- 天津大学:《数值计算》课程教学资源(讲稿)第三章 插值法和最小二乘法(3.2)插值多项式中的误差.pdf
- 天津大学:《数值计算》课程教学资源(讲稿)第三章 插值法和最小二乘法(3.1).pdf
- 天津大学:《数值计算》课程教学资源(讲稿)第六章 逐次逼近法(6.4)迭代法的加速.pdf
- 天津大学:《数值计算》课程教学资源(讲稿)第六章 逐次逼近法(6.3)非线性方程的迭代法.pdf
- 天津大学:《数值计算》课程教学资源(讲稿)第六章 逐次逼近法(6.2)线性方程组的迭代法.pdf
- 《C语言程序设计教程》第1章 绪论.ppt
- 《C语言程序设计教程》第2章 C程序的基本组成.ppt
- 《C语言程序设计教程》第3章 选择结构.ppt
- 《C语言程序设计教程》第4章 循环结构.ppt
- 《C语言程序设计教程》第5章 模块设计.ppt
- 《C语言程序设计教程》第6章 数组.ppt
- 《C语言程序设计教程》第7章 指针.ppt
- 《C语言程序设计教程》第8章 结构体与联合体.ppt
- 《C语言程序设计教程》第9章 文件.ppt
- 《单片机》第7章 80C51的系统扩展.ppt
- 《单片机》第8章 80C51的测控接口.ppt
- 《单片机》第三讲 中断定时与串口.ppt
- 《单片机》第6章 80C51的串行口.ppt
- 《单片机》第4章 80C51的程序设计.ppt
- 《单片机》第1章 单片机概述.ppt
- 《单片机》第3章 指令系统.ppt
- 《单片机》第2章 MCS-51系列单片机的基本结构.ppt
- 《单片机》第5章 80C51的中断系统及定时/计数器.ppt
- 《单片机》第5章 80C51的中断系统及定时/计数器续.ppt
- 《单片机》第4章 汇编语言程序设计.ppt