ppt课件-第十章位运算.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ppt课件-第十章位运算

第十二章 位运算 引言 位运算是对操作数以二进制位(bit)为单位进行的数据处理。 C语言中,位运算包括逻辑位运算和移位位运算。 参加位运算的操作数必须是整型常量或变量。 一、逻辑位运算 逻辑位运算分为四种:位反、位与、位或、位异或。 一、逻辑位运算 设有如下定义: int a;则: 1、aa=a; a255=a; 2 、a|a=a; a|0=0; 3、a^a=0; a^255=~a; a^0=a; 4、使特定位取反: 令a^b, 其中b为:要取反位为1,其他各位为0。 例如:让a的3~5位取反:令a二、移位运算 移位运算分为两种:左移和右移 二、移位运算 算术右移: 对于带符号数,左面补符号位:既正数补0,负数补1 对于无符号数,左边补0 逻辑右移: 左面总是补0 试一试,我们所用的Turbo C系统采用的是哪种位移? 二、移位运算 应用: 要取a中的某几位: 设a 如要取a的2~5位: 说明: 移位运算比乘、除法的运算速度快。 移位运算的优先级低于算术运算,高于关系运算。 位运算、移位运算可以与赋值运算组成符合赋值运算符。其优先级等价于赋值运算。 例如:a=ab; 可写成a=b; a=a|b; 可写成a|=b; a=a^b; 可写成a^=b; a=a2; 可写成a=2; a=a2; 可写成a=2; 练习: 1、设int b=2; 表达式(b2)/(b1)的值是(8)。 2、以下程序的输出结果是(100) main() {int x=040; printf(“%o”, x1); } 3、已知: int x=5, y=3; 求下列表达式的值: !x ~x xy xy x|y x||y x^y pow(x,y) 位运算应用举例 作业 上面的结构体变量dat中的成员安排如下: * * 5^6= 3(即101110=011) 按位异或 ^ 5|4= 5(即101100=101) 按位或 | 56=4(即101110=100) 按位与 ~5=2 (即~101=010) 按位取反 ~ 举例 功能 运算符 练习:设以下各数均用一个字节表示(4位) 求:~6, 54, 5|6, 5^4。 在逻辑位运算中,~的优先级高于算术运算符、关系运算符、逻辑运算符和其他运算符, 其他运算符则低于关系运算符、高于逻辑运算符。 000101002右移 000101002左移 举例 功能 运算符 1、左移运算 当进行左移运算时,右端出现的空位补0,而左端移出的数据舍去。 例如:c=44进行下面的操作: c=c1; c的值变为88 c=c1; c的值变为176 若移出的位不为1,那么每左移一位,相当于原数乘以2,左移n位,相当于原数乘以2n。 算术右移 当进行右移运算时,操作结果与操作数是否带符号有关。 无符号操作数右移时,左端出现的空位补0,右端移出的数据舍去。 带符号操作数右移时,左端出现的空位补1,右端移出的数据舍去。 例如:带符号数a=-16和无符号数b=240,他们的二进制表示 进行下列操作: a=a1; a的值变为-8 b=b1; b的值变为120 a=a1; a的值变为-4 b=b1; b的值变为60 每右移一位,相当于原数除以2,右移n位,相当于原数除以2n。 同1、令 1001001101010111 0111100100110101 移位前 循环右移4位后 左移12位后得b 0111000000000000 右移4位后得c 0000100100110101 b与c相或得最后结果。见程序D12_2.c 将变量a右循环移动n位,假定n为4,其图示如下: 1、编程,实现左循环移位 2、page 329 12.4 题 3、page 329 12.1题 12.3 位段 c语言中允许在结构体中以位为单位来指定其成员所占的内存长度,这种以位为单位的成员就称为位段

文档评论(0)

MvS023247 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档