第十章 位运算 - 山东外贸职业学院.ppt_第1页
第十章 位运算 - 山东外贸职业学院.ppt_第2页
第十章 位运算 - 山东外贸职业学院.ppt_第3页
第十章 位运算 - 山东外贸职业学院.ppt_第4页
第十章 位运算 - 山东外贸职业学院.ppt_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第十二章 位运算,引言,位运算是对操作数以二进制位(bit)为单位进行的数据处理。 C语言中,位运算包括逻辑位运算和移位位运算。 参加位运算的操作数必须是整型常量或变量。,一、逻辑位运算,逻辑位运算分为四种:位反、位与、位或、位异或。,练习:设以下各数均用一个字节表示(4位) 求:6, 5则: 1、a 4、使特定位取反: 令ab, 其中b为:要取反位为1,其他各位为0。 例如:让a的35位取反:令a00011100,二、移位运算,移位运算分为两种:左移和右移,1、左移运算 当进行左移运算时,右端出现的空位补0,而左端移出的数据舍去。 例如:c=44(00101100)进行下面的操作: c=c1

2、; c的值变为88(01011000) c=c1; c的值变为176(10110000) 若移出的位不为1,那么每左移一位,相当于原数乘以2,左移n位,相当于原数乘以2n。,二、移位运算,算术右移: 对于带符号数,左面补符号位:既正数补0,负数补1 对于无符号数,左边补0 逻辑右移: 左面总是补0 试一试,我们所用的Turbo C系统采用的是哪种位移?,二、移位运算,算术右移 当进行右移运算时,操作结果与操作数是否带符号有关。 无符号操作数右移时,左端出现的空位补0,右端移出的数据舍去。 带符号操作数右移时,左端出现的空位补1,右端移出的数据舍去。 例如:带符号数a=-16和无符号数b=240

3、,他们的二进制表示 进行下列操作: a=a1; a的值变为-8(11111000) b=b1; b的值变为120(01111000) a=a1; a的值变为-4(11111100) b=b1; b的值变为60(00111100) 每右移一位,相当于原数除以2,右移n位,相当于原数除以2n。,同为11110000。,应用:,要取a中的某几位: 设a=00101101; 如要取a的25位:,00001100,1、令a,说明:,移位运算比乘、除法的运算速度快。 移位运算的优先级低于算术运算,高于关系运算。 位运算、移位运算可以与赋值运算组成符合赋值运算符。其优先级等价于赋值运算。 例如:a=a,练习

4、:,1、设int b=2; 表达式(b1)的值是(8)。 2、以下程序的输出结果是(100) main() int x=040; printf(“%o”, x1); 3、已知: int x=5, y=3; 求下列表达式的值: !x x x unsigned b:3; unsigned c:6; unsigned d:4; int k;dat;,定义一种结构体类型struct wd,且同时定义该类型的一个变量dat。其中a、b、c、d分别是位段,它们分别占2、3、6、4个位,k是的一般成员,k占2个字节,上面的结构体变量dat中的成员安排如下:,对结构体变量dat中各个成员的使用和前面讲解一致。只是需要注意:位段成员值的范围,只能为非负整数,且不能超过它们所能表示的最大值。 由此判断下面的赋值是否正确

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论