- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第11章 位运算 本章概述 C语言有一个重要特点就是可以直接对二进制位进行操作,即位运算。 二进制位简称位(bit),其值为0或1。计算机真正执行的正是由0和1构成的机器指令,计算机内数据也是由二进制表示的。 数在计算机内均是以补码的形式存储的 。 本章介绍位运算和位段结构的有关知识。 本章的学习目标 本章教学目的:理解位运算的概念,掌握基本位运算运算符的使用,理解位段的概念。 本章教学重点:基本位运算运算符的使用 本章教学难点:位段的概念 主要内容 11.1 位运算符 11.2 位运算 11.3 位运算应用举例 11.4 位段结构 11.1 位运算符 11.2 位运算 11.2 位运算 11.2 位运算 11.2 位运算 11.2 位运算 11.2 位运算 11.3 位运算应用举例 # include stdio.h int main() {unsigned int n,a,b,c,d; printf(Input a Hex number:); scanf(%x,a); printf(\nInput the number of bit to move:); scanf(%d,n); b=a16-n; c=an; d=b|c; printf(\nThe result of move:%x,d); return 0; } 11.4 位段结构 1. 位段结构的概念 11.5 本章小结 本章介绍了C语言的位运算 。 首先,介绍了C语言的位运算符。 接下来,对C语言的各个位运算符的用法进行了详细介绍。 之后,举例说明C语言位运算的应用方法。 最后,介绍了C语言的位段结构 C语言程序设计 第11章 位运算 本章概述 本章的学习目标 主要内容 a^b:对a与b的各对应位进行“按位异或”运算 按位异或 ^ a|b:对a与b的各对应位进行“按位或”运算 按位或 | ab:对a与b的各对应位进行“按位与”运算 按位与 a2:将变量a的各位全部右移2位,对于无符号数和正整数,高位补0;对于负整数,高位补1(适用于turboc系统) 右移 a2:将变量a的各位全部左移2位,高位丢失,低位补0 左移 ~a:对变量a的全部位取反 按位取反 ~ 举例 功能 位运算符 取反运算“~”是一个单目运算符,运算量在运算符之后,取反运算的功能是将一个数据中所有位都取其相反值,即1变0,0变1。 运算规则为: ~1=0 ~0=1 例11.1 对于无符号的字符型数据 a=(18)10 =2 , 则~a等于2 ,即(237)10 。 C程序如下: 11.2.1 按位取反运算 # include stdio.h int main() { unsigned char a=18,b; b=~a; printf(“~a=%d”,b); return 0; } 运行结果为: ~a= 237 注意以下程序与左面程序及运行结果的区别: # include stdio.h int main() { char a=18,b; b=~a; printf(“~a=%d”,b); return 0; } 运行结果:-19 前一个程序结果很好理解,后一个因为a是带符号数据,因此~a=2的结果是一负数的补码,转换为原码时,第1位符号位不变,对剩余的部分先减1,再全部取反,因此得到的二进制原码为即十进制的-19。 11.2.2 左移运算 左移运算“”是一个双目运算符,左移运算的功能是将一个数据所有位向左移若干位,左边(高位)移出的部分舍去,右边(低位)自动补零。 例11.2 对于无符号字符型数据 a=(18)10 =2 , a 3的结果是2 ,即(144)10 。 C程序如下: # include stdio.h int main() { unsigned char a=18, b; b=a3; printf(“a3=%d”,b); } 运行结果为: a3=144 注意以下程序与左面程序的区别: # include stdio.h int main() {char a=18,b; b=a3; printf(“a3=%d”,b); return 0; } 运行结果为: a3=-112 原因同前,对于带符号数a,因a3得到的2, 是
您可能关注的文档
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第1章 C语言概述.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第2章 数据类型表达式及其运算.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第3章 顺序结构程序设计.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第4章 选择结构程序设计.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第5章 循环结构程序设计.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第6章 数组和指向数组的指针.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第7章 函数与指针.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第8章 结构体和共用体.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第9章 文件.ppt
- C语言程序设计( 第六版) 高职计算机大类专业基础课 董汉丽 第10章 C语言屏幕操作函数及应用.ppt
文档评论(0)