第15章底层程序设计资料.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言编程实战宝典 大家好!!! 第15章 底层程序设计 C语言提供了6个位运算符,这些运算符可以用于在整数和字符上进行按位运算。 15.1 位运算符 表15.1 位逻辑运算符 运算符 含义 ~ 按位求反 按位与 | 按位或 ^ 按位异或 15.1 位运算符 1. 二进制反码或按位取反: ~ ~是一个单目运算符,它用来对一个二进制数按位取反,即将0变为1,将1变为0。例如,对十进制数28求反,需要先求出其对应的二进制数,再对该二进制数求反。 15.1 位运算符 28对应的二进制数为对其求反后结果如图15.1所示。 图15.1 对28求反 15.1 位运算符 2. 按位与: 二进制运算符通过对其两个操作数逐位进行比较来产生一个新值。对于每个二进制位,只有两个操作数的对应位都为1时结果才为1,否则为0。如果用真、假来描述,那就是只有当两个位操作数都为真时结果才为真,否则结果为假。 15.1 位运算符 例如,求59应该先将它们各自转换为二进制数,然后再进行按位与,如图15.2所示。 图15.2 59 15.1 位运算符 3. 按位或:| 二进制运算符 | 通过对两个操作数逐位进行比较来产生一个新值。对于每个二进制位,如果任意一个操作数中对应的位为1,那么结果位就为1。如果用真、假来描述,那就是如果任意一个操作数为真或者两个都为真,那么结果就为真,否则为假。 15.1 位运算符 例如,求5|9应该先将它们各自转换为二进制数,然后再进行按位或,如图15.3所示。 图15.3 5|9 15.1.2 位逻辑运算符的用法 1. 清零 将二进制零: 15.1.2 位逻辑运算符的用法 2. 取指定位 取整数x的低4位,x 15.1.2 位逻辑运算符的用法 3. 保留特定位 将整数x的第3位、第4位保留下来,x 15.1.2 位逻辑运算符的用法 4. 打开位 打开整数x的第1位,x即将第1位设置为1,并保留其它所有位不变: 15.1.2 位逻辑运算符的用法 5. 关闭位 关闭整数x的第1位,x即将第1位设置为0,并保留其它所有位不变: 15.1.2 位逻辑运算符的用法 6. 转置位 转置整数x的第1位和第2位,x即打开第1位,关闭第2位: 15.1.3 移位运算符 1. 左移运算符: 左移运算符 将其左侧操作数中的每位都向左移动,移动的位数由其右侧的操作数指定。空出的位使用0来填充,并且将移出左侧操作数最高位的那些位丢弃掉。 下面是使用左移运算符的例子: 2 /*左移两位*/ /*结果*/ 15.1.3 移位运算符 2. 右移运算符: 右移位运算符将其左侧操作数中的每位都向右移动,移动的位数由其右侧的操作数指定。将移出左侧操作数最低位的那些位丢弃掉。 对于无符号整数来说,使用0填充左端空出的位。 对于有符号整数来说,其结果依赖于具体的机器。空出的位可能用0填充,也可能使用符号位(最左端的位)的值来填充。 15.1.3 移位运算符 对于带符号整数,有如下结果: 2 /*最高位为符号位*/ /*对某些系统,使用0 来填充高位*/ /*对某些系统,使用符 号位的值来填充高位*/ 对于无符号整数,有如下结果: 2 /*无符号整数*/ /*右移后的结果 */ 15.1.4 移位运算符的用法 移位运算符能够提供快捷、高效的对于2的幂的乘法和除法。 左移1位相当于乘以2,右移1位相当于除以2。 假设number是一个整型变量,则有: number n number乘以2的n次幂 number n

文档评论(0)

1112111 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档