中国科技大学:《C语言程序设计》第9章 位运算

第9章位运算 白雪飞 baixfaustc. edu.cn 中国科学技术大学电子科学与技术系 Dept of Elec. Sci. Tech, USTC Fal22003
白 雪 飞 baixf@ustc.edu.cn 中国科学技术大学电子科学与技术系 Dept. of Elec. Sci. & Tech., USTC Fall, 2003 第9章 位 运 算

目录 位运算和位运算符 ●位运算举例 C语言程序设计-第9章位运算2
C语言程序设计 - 第9章 位运算 2 目 录 ⚫ 位运算和位运算符 ⚫ 位运算举例

位运算 。按二进制位进行运算 位运算的运算对象是二进制的位 位运算速度快,效率高,节省存储空间 只能对整型数据(包括字符型)进行位运算 负数以补码形式参与运算 注意与逻辑运算区别 C语言程序设计-第9章位运算3
C语言程序设计 - 第9章 位运算 3 位运算 ⚫ 按二进制位进行运算 ⚫ 位运算的运算对象是二进制的位 ⚫ 位运算速度快,效率高,节省存储空间 ⚫ 只能对整型数据(包括字符型)进行位运算 ⚫ 负数以补码形式参与运算 ⚫ 注意与逻辑运算区别

位运算符( Bitwise Operators 运算符名称 举例 优先级 按位取反 wflag (高) (算术运算符) >3 (关系运算符) 6按位与1aq60x37 按位异或|f1ag^0xc4 按位或1ag10x5A (低) (赋值运算符) C语言程序设计-第9章位运算4
C语言程序设计 - 第9章 位运算 4 位运算符 (Bitwise Operators) 运算符 名称 举例 优先级 ~ 按位取反 ~flag (高) (算术运算符) > 右移 b >> 3 (关系运算符) & 按位与 flag & 0x37 ^ 按位异或 flag ^ 0xC4 | 按位或 flag | 0x5A (低) (赋值运算符)

按位与( Bitwise and) 运算规则 0&0=0; ■0&1 0 1&0=0 1&1=1; 用法 按位清零 ■保留某些指定位 C语言程序设计-第9章位运算5
C语言程序设计 - 第9章 位运算 5 按位与 (Bitwise AND) ⚫ 运算规则 ◼ 0 & 0 = 0; ◼ 0 & 1 = 0; ◼ 1 & 0 = 0; ◼ 1 & 1 = 1; ⚫ 用法 ◼ 按位清零 ◼ 保留某些指定位

按位与举例 运算举例 1010,1101(0xAD) 0110,1001(0x69) 0010,1001(0x29) ●按位清零、保留 XXXX 0110,0010(0x62) 0x0,00x0 C语言程序设计-第9章位运算6
C语言程序设计 - 第9章 位运算 6 按位与举例 ⚫ 运算举例 1010,1101 (0xAD) & 0110,1001 (0x69) 0010,1001 (0x29) ⚫ 按位清零、保留 xxxx,xxxx_____ & 0110,0010 (0x62) 0xx0,00x0_____

按位或( Bitwise inclusive or) 运算规则 0011 0101 0111 用法 按位置 C语言程序设计-第9章位运算7
C语言程序设计 - 第9章 位运算 7 按位或 (Bitwise Inclusive OR) ⚫ 运算规则 ◼ 0 | 0 = 0; ◼ 0 | 1 = 1; ◼ 1 | 0 = 1; ◼ 1 | 1 = 1; ⚫ 用法 ◼ 按位置一

按位或举例 运算举例 1010,1101(0xAD) 0110,1001(0x69) 1110,1101(0xED) ●按位置 XXXX 0110,0010(0x62) x11x xxix C语言程序设计-第9章位运算8
C语言程序设计 - 第9章 位运算 8 按位或举例 ⚫ 运算举例 1010,1101 (0xAD) | 0110,1001 (0x69) 1110,1101 (0xED) ⚫ 按位置一 xxxx,xxxx_____ | 0110,0010 (0x62) x11x,xx1x_____

按位异或( Bitwise exclusive or,XOR) 运算规则 0 0011 0101 0 说明 相“异”则为1,相“同”则为0 相当于按位且无进位的加法 C语言程序设计-第9章位运算9
C语言程序设计 - 第9章 位运算 9 按位异或 (Bitwise Exclusive OR, XOR) ⚫ 运算规则 ◼ 0 ^ 0 = 0; ◼ 0 ^ 1 = 1; ◼ 1 ^ 0 = 1; ◼ 1 ^ 1 = 0; ⚫ 说明 ◼ 相“异”则为1,相“同”则为0 ◼ 相当于按位且无进位的加法

按位异或用法举例 特定位翻转 1010;1101(0xAD) 0110,1001(0x69) 1100,0100(0xC4) 与0相异或,保持原值不变 与自身相异或,则全部位清零 交换两个整数值 ■a=a^b;b=b^a;a=a^b; C语言程序设计-第9章位运算10
C语言程序设计 - 第9章 位运算 10 按位异或用法举例 ⚫ 特定位翻转 1010,1101 (0xAD) ^ 0110,1001 (0x69) 1100,0100 (0xC4) ⚫ 与0相异或,保持原值不变 ⚫ 与自身相异或,则全部位清零 ⚫ 交换两个整数值 ◼ a=a^b; b=b^a; a=a^b;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 中国科技大学:《C语言程序设计》第7章 指针.ppt
- 中国科技大学:《C语言程序设计》第5章 函数.ppt
- 中国科技大学:《C语言程序设计》第10章 文件操作.ppt
- 中国科技大学:《C语言程序设计》第6章 预处理.ppt
- 中国科技大学:《C语言程序设计》第4章 数组.ppt
- 中国科技大学:《C语言程序设计》第2章 数据类型、运算符和表达式.ppt
- 中国科技大学:《C语言程序设计》第1章 C语言的程序结构.ppt
- 高职高专规划教材:《计算机组装维护与维修》第3章 中央沁理器.ppt
- 高职高专规划教材:《计算机组装维护与维修》第6章 系统总线接口.ppt
- 高职高专规划教材:《计算机组装维护与维修》第4章 外围芯片组.ppt
- 高职高专规划教材:《计算机组装维护与维修》第5章 内存.ppt
- 高职高专规划教材:《计算机组装维护与维修》第7章 磁盘存储器.ppt
- 高职高专规划教材:《计算机组装维护与维修》第8章 显示统.ppt
- 高职高专规划教材:《计算机组装维护与维修》第2章 微机主板.ppt
- 高职高专规划教材:《计算机组装维护与维修》第9章 PC电源、键盘标和光驱.ppt
- 高职高专规划教材:《计算机组装维护与维修》第10章 系统功能.ppt
- 高职高专规划教材:《计算机组装维护与维修》第11章 微机系统硬件安装.ppt
- 高职高专规划教材:《计算机组装维护与维修》第15章 软件系统的故障与维护.ppt
- 高职高专规划教材:《计算机组装维护与维修》第14章 硬件系统的故障与维修.ppt
- 高职高专规划教材:《计算机组装维护与维修》第12章 微机系统软件安装.ppt
- 中国科技大学:《C语言程序设计》第8章 结构体.ppt
- 中国科技大学:《C语言程序设计》第一章 概述.ppt
- 中国科技大学:《C语言程序设计》第二章 数据类型、运算符和表达式.ppt
- 中国科技大学:《C语言程序设计》第六章 预处理.ppt
- 中国科技大学:《C语言程序设计》第五章 函数.ppt
- 中国科技大学:《C语言程序设计》第七章 概述.ppt
- 中国科技大学:《C语言程序设计》第八章 结构体(与共用体).ppt
- 中国科技大学:《C语言程序设计》第十章 位运算.ppt
- 中国科技大学:《C语言程序设计》第3章 C语言的基本语句和程序结构设计.ppt
- 中国科技大学:《C语言程序设计》第三章 语句与控制流.ppt
- 中国科技大学:《C语言程序设计》第九章 文件.ppt
- 中国科技大学:《C语言程序设计》第四章 数组.ppt
- 《电子商务基础与应》(第四版) 第十二章 电子商务安全管理.ppt
- 《操作系统》课程教学资源(PPT课件)第四章 存储器管理.ppt
- 《操作系统》课程教学资源(PPT课件)第三章 处理机调度与死锁.ppt
- 《操作系统》课程教学资源(PPT课件)第二章 进程管理.ppt
- 《操作系统》课程教学资源(PPT课件)第一章 操作系统引论.ppt
- 电子信息与控制工程学院:《MATLAB语言基础》第二讲 matlab 的数值计算.ppt
- 电子信息与控制工程学院:《MATLAB语言基础》第六讲 matlab工具箱.ppt
- 电子信息与控制工程学院:《MATLAB语言基础》第七讲 matlab的程序设计.ppt