网站大量收购独家精品文档,联系QQ:2885784924

C语言程序设计(第二版) 教学课件 作者 王宏志,韩志明主编 C语言程序设计12.ppt

C语言程序设计(第二版) 教学课件 作者 王宏志,韩志明主编 C语言程序设计12.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《C语言程序设计》-第十一章 * * 第12章 位运算 12.1基本位运算符与位运算 12.2位移运算符与位移运算 12.3位运算的复合赋值运算符 12.4 位 段 12.5位运算应用举例 C语言提供了四种基本位运算符。其中除了运算符~是单目运算符之外,其他都是双目运算符。 12.1基本位运算符与位运算 a按位取反 ~a 按位求反 ~ a和b按位异或 a^b 按位异或 ^ a和b按位或 a|b 按位或 | a和b按位与 ab 按位与 运算功能 例子 名称 运算符 表12.1 位运算符 12.1.1按位与运算符() 按位与运算是对两个运算数据的对应二进制位进行与运算。其运算规则是:若对应两个位都为1,则该位与的结果为1,否则为0。 1 0 1 0 0 0 1 0 【例12.1】设a=0x17,b=0x26,计算c=ab的结果值。 此题中变量a的二进制表示变量b的二进制表示计算过程如下: 即ab的值为0x06。 【例12.2】设a将a的第2位置0,结果存入变量c中。 此题要将a的第2位置0,因此取一个数b,其第2位为0,其他位为1,即b然后将a与b按位与,结果存入变量c中。计算过程如下: 【例12.3】设a取a的左起第3、4、6、7、8位的值,将结果存入变量c中。 此题要取a的左起第3、4、6、7、8位的值,因此设一个数b,其左起第3、4、6、7、8位为1,其他位为0,即b然后将a与b按位与,结果存入变量c中。计算过程如下: 12.1.2按位或运算符(|) 按位或运算是对两个运算数据的对应二进制位进行或运算。其运算规则是:若对应的两个位都是0,则该位或的结果值为0,否则为1。 1 1 1 1 0 0 1 0 | 【例12.4】设a=0x17,b=0x26,计算c=a|b的结果值。 即a|b的值为0x37。 【例12.5】设a=0101010120012001,将a的低八位均置1,高八位保留原值。结果存入变量c中。 此题要将a的低八位均置1,高八位保留原值,因此设一个数b,使其低八位为1,高八位为0,即b=0000000012121212。然后将a与b按位或,结果存入变量c中。计算过程如下: 12.1.3按位异或运算符(^) 按位异或运算是对两个运算数据的对应二进制位进行异或运算。其运算规则是:若相应的两个位的值不同,则结果值为1;若两个位的值相同,则结果值为0。 0 1 1 1 0 0 1 0 ^ 【例12.6】设a=0x17,b=0x26,计算c=a^b结果值。 此题的计算过程如下: 【例12.7】设ab令c=a^b,则变量c得到的是变量a的原值。计算过程如下: 【例12.8】设a将a的低四位翻转,高四位保持不变,结果存入变量c中。 此题要使a的低四位翻转,高四位保持不变,因此设一个数b,使其低四位为1,高四位为0,即b然后将a与b按位异或,结果存入变量c中。计算过程如下: 【例12.9】设ab交换变量a和b的值。计算过程如下: 12.1.4按位取反运算符(~) 按位取反运算是把运算数据按二进制位取反。其运算规则是:若操作数的某位二进制位为0,则取反后为1;反之,当它为1时,取反后为0。 【例12.10】设a=0x17,计算~a的值。 计算过程如下: 即~a的值为0xe8。 12.2位移运算符与位移运算 C语言提供两种位移操作:左移位和右移位。它们的作用是对运算数据以二进制位为单位进行左移和右移。 b右移3位 b3 右移位 a左移2位 a2 左移位 运算功能 例子 名称 运算符 12.2.1左移运算符() 左移的运算规则是:将运算数据中的每个二进制位向左移动若干位,从左边移出去的高位部分被丢弃,右边空出的低位部分补零。 【例12.12】设无符号整型变量a的值为0x1b,计算a=a2的值。 此题表示将a中的每个二进制位左移2位后存入a中。由于0x1b的二进制表示所以左移2位后,将变即a=a2的结果为0x6c。 12.2.2右移运算符() 右移的运算规则是:将运算数据中的每个二进制位向右移动若干位,从右边移出去的低位部分被丢弃。对无符号数来讲,左边空出的高位部分补0。 对有符号数来讲,如果符号位为0(即正数),则空出

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档