C语言第11章 位运算.pptVIP

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

§11.1数字系统、位和字节§11.2位运算符与位运算§11.3位段§11.4位运算程序举例第11章位运算§11.1数字系统、位和字节11.1.1数字系统11.1.2位和字节11.1.1数字系统1. 数制的基本概念基数位权有了基数与位权概念后我们就能将任意N进制数展开为如下形式:其中:ri为计数制中任一个数字,R为基数【例11-1】将十进制数309.84D展开成位权形式。【例11-2】将二进制展开成位权形式。11.1.1数字系统2. 不同数制的转换其他进制数转换为十进制数方法:直接按位权展开并求和。十进制数转换为二进制数方法:整数采用“除以2逆序取余法”,小数采用“乘以2顺序取整法”。二进制数与八进制数和十六进制数间的相互转换11.1.1数字系统3. 计算机中常用的编码二一十进制编码BCD码字符的编码ASCII码汉字编码11.1.2位和字节位(bit)音译为“比特”,是计算机内信息的最小单位,一般用小写字母“b”表示。一位只能表示0或1两种状态。字节(Byte)这个单位,简记为B。一个字节包含8个比特,即1B=8bit。字(word)的概念,一个字的位数被称为字长,是计算机系统结构中的一个重要特性。字的长度与CPU相关,Windows系统中为了实现兼容,将一个字的长度定义为两个字节,即1word=2B。经常使用的存储量还有KB、MB、GB、TB等度量单位。§11.2位运算符与位运算11.2.1位逻辑运算符与运算11.2.2位移位运算符与运算11.2.1位逻辑运算符与运算“按位与”运算()指参加运算的两个数据,按对应的二进制位分别进行“逻辑与”运算。如果两个相应的二进制位都为1,则该位的运行结果为1;否则为0。这里的1可以理解为逻辑中的true,0可以理解为逻辑中的false。对存储单元清零以及提取特定位。“按位或”运算(|)指参加运算的两个数据,按对应的二进制位分别进行“逻辑或”运算。如果两个相应的二进制位都为0,则该位的运算结果为0;否则都为1。经常用来对一个数据的某些位置1。11.2.1位逻辑运算符与运算“按位异或”运算(^)指参加运算的两个数据,按对应的二进制位分别进行“逻辑异或”运算。如果两个相应的二进制位不同,则该位的运算结果为1,如果对应位相同,则该位的运算结果为0。常用于对操作数的某些特定位进行翻转,还可以利用“按位异或”运算对变量置零。“按位取反”运算(~)是唯一的一个单目位运算符,用来将一个二进制数按位取反,即将1变0,将0变1。11.2.2位移位运算符与运算“左移”运算()左移运算符“”是双目运算符,左移运算的一般形式为:运算对象左移位数。左移的作用是将一个数的各二进制位依次左移若干位(由左移位数给出),左移时,右端(低位)补0,左端(高位)移出的部分舍去。“右移”运算()右移运算符“”是双目运算符,右移运算的一般形式为:运算对象右移位数。右移的作用是将一个数的各二进制位依次右移若干位(由右移位数给出),右移时,右端(低位)移出的部分舍去,左端(高位)移入的二进制数分两种情况:对于无符号数和正整数,高位补0;对于负整数,有的系统高位补1,有的系统高位补0。§1.3位段11.3.1位段结构类型11.3.2位段结构类型变量的定义与引用11.3.1位段结构类型位段结构类型定义位段的定义域结构体的定义相仿,其定义格式为:struct位段结构类型名{ 类型说明符1位段名1:位段1占用位数;/*最低位*/ 类型说明符2位段名2:位段2占用位数;/*次低位*/ …; 类型说明符n位段名n:位段n占用位数;};11.3.1位段结构类型位段定义的说明位段的类型只能是int或unsigned类型,不能是char型或者浮点型;位段占的二进制位数不能超过该基本类型所能表示的最大位数;在位段结构中还可以定义无名位段。无名位段起位段之间的分隔作用。无名位段不能被访问,但是会占据空间。一个位段必须存储在同一存储单元,不能横跨两个存储单元。如果一个单元空间不够,则系统从下一个单元起存放该位段。在位段结构中,不一定必须是位段成员,也可以包含非位段成员。取地址操作符不能应用在位段上。位段不能是类的静态成员。位段不能出现数组的形式。

文档评论(0)

趁早学习 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档