- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十一章位操作
第十一章 位操作 11.1 目的和要求 1、C语言是一种系统描述语言,它支持通常需要用汇编语言才能完成的一些功能。而位运算体现了C语言的这一特点。 2、了解位运算的特点,掌握它的使用方法。 11.2相关知识 1、位运算的概念 所谓位运算是指二进制位的运算,它的运算对象只能是整型或字符型数据,不能是浮点型数据。 2、位运算及位操作赋值操作 ① 按位与运算 、 = ② 按位或运算 |、 |= ③ 按位异或运算 ^、^= ④ 取反运算 ~ ⑤ 左移运算 、 = ⑥ 右移运算 、 = 3、位段 可以用位运算符进行位操作,也可以用位段的方法来访问字节中的某些位。所谓位段,是指以二进制位为单位定义长度的结构体类型中的成员。位于同一结构体中的若干位段的集合,构成了具有某种意义的位结构体数据类型。其一般定义形式为: struct 位结构体类型名 { 位段类型 位段成员名1:位段长度; 位段类型 位段成员名2:位段长度; … 位段类型 位段成员名n:位段长度; }位结构体变量; 其中,“位结构体类型名”是该结构体的名字;“位段类型”表示其后位段成员的数据类型,一个位段只能被说明为int、unsigned或signed中的一种,由于单个位不可能有符号,所以长度为1的位段只能为unsigned类型;“位段长度”表示位段所占二进制位数。 11.3 实验练习 实验练习 1:编写程序实现,将无符号整数x向左环移n位。即将x中原来右面的32-n位左移n位,而原来左端n位移到最右面n位。假设用4个字节存放一个无符号整数。 本练习要求在封闭式实验课中在助教或者讲师的指导下完成。本练习分成6个部分: 实验目的 问题描述 事例输出 程序模板 问题解答提示 后续问题和任务 程序模板是完整的、可实际运行的C程序,其中关键的一行或者多行代码已经替换为注释。请先阅读问题描述,分析事例输出;然后研究模板的代码。参考问题解答提示,用C代码替换/* */注释。编译并执行程序,并将输出结果与提供的事例输出进行比较。然后回答强化练习。 实验目的: 本实验旨在巩固学生对位运算概念的理解,增强程序设计能力。在这个实验中,学生将练习: ? 定义三个无符号整数x, y, z。 ? 用scanf( )函数输入待移位的数x。 ? 用scanf( )函数输入需要移动的位数n。 ? 将x右移32-n位并存入y中。 ? 将x左移n位并存入z中。 ? y与z位或运算,其结果存入z中。 ? 输出z的值。 在强化练习中,学生将练习: ? 若用两个字节存放一个整数,如何对程序进行修改? ? 将无符号整数x向右环移n位。 问题描述 编写程序,从键盘输入无符号整数x和左环移位数n,使原来左端n位移到最右面n位。假设用4个字节存放一个无符号整数。 示例输出 Please input x: 12 Please input n: 3 Results: 96 程序模板 #include stdio.h void main( ) { unsigned int x, y, z; int n; printf(\nPlease input x:); scanf(%d,x); printf(\nPlease input n:); scanf(%d,n); /*将x右移32-n位,其结果存入y*/ /*将x左移n位,其结果存入z*/ /*将y和z按位或运算,其结果存入z*/ printf(Results: %d\n,z); } 问题解答提示 1.有符号数是将其最高位作为符号位,符号位为1时表示该数是负数,为0时表示该数是正数;无符号数的最高位不作为符号位,而是作为数据位。 2.将最左端的3位移到最右端,如果假定4个字节(32位)存放一个无符号整数,则需将该数右移29位。最左端的3位移到了最右端后,左端的29位被补0。 3.将x左移3位,则左端的3位被移出而右端的3位补0。 4.提示2中右移后的结果(左端29位是0,右端3位是原最左端的3位)与提示3中左移后的结果(左端29位是原右端的29 位,右端3位为0)按位或,即得到左环移。 5.如果在实验中碰到任何问题,请向实验老师寻求帮助。 强化练习 1.根据程序模板,若用两个字节存放一个无符号整数,怎样实现左环移。 2.从键盘输入无符号整数x和环移位数n,编写程序实现右环移。 实验练习 2:假定机器对位段空间的分配方向是从左至右,试编程实现从键盘取一个整数,然后输出该数从右端开始的第4~8位的数值。 本练习要求在封闭式实验课中在助教或者讲师的指导下完成。本练习分成6个部分: 实验目的 问题描述 事例
您可能关注的文档
最近下载
- 标准图集-20S515-钢筋混凝土及砖砌排水检查井.pdf VIP
- 23ZG210预应力高强混凝土空心方桩.pdf
- 浙教版综合实践活动八年级上册第一单元《身边的环境污染问题》第一课时课件.pptx
- 新人美版美术一年级上册第五单元 3.最爱中国红课件.ppt
- 农业绿色发展与生态平衡技术.pdf VIP
- 2025年山地农业自然灾害风险评估与农业保险风险分散策略报告.docx
- 2025年公安局辅警招聘考试试题库(含答案).docx VIP
- 安全法律法规标准规范管理制度(必威体育精装版版).doc VIP
- 综合 - GB-T 17502-2009 海底电缆管道路由勘察规范.pdf
- 《电气系统控制技术》课件 项目三 照明电路.pptx VIP
文档评论(0)