第四章 按位取反运算.pdf

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 9 章 位运算 在计算机内部,程序的运行、数据的存储及运算都是以二进制的形式进行的。位运算 是指进行二进制位的运算,是C语言有别于其他高级语言的一种强大的运算,它使得C语言 具有了某些低级语言的功能,主要用于系统程序或控制程序中,例如设备驱动程序、磁盘 文件管理程序等。  9.1 位运算符与位运算 有些位运算可以作为关闭位的手段,屏蔽掉某些位,如奇偶校验位。有些位运算相反, 可用来置位,直接对结果变量的每一位分别处理。移位运算可对外部设备 (如D / A转换器) 的输入和状态信息进行译码,移位运算还可用于整数的快速乘除运算。  9.1.1 位运算符 表 9.1 列出了位运算的运算符。位运算符的操作对象为整型或字符型数据。下面一一 列举说明。 表 9.1 位运算符 位运算符 含 义 举 例 ~ 按位取反 ~a,对变量 a 中全部二进制位取反 左移 a 2,a 中各位全部左移 2 位,右边补 0 右移 a 2,a 中各位全部右移 2 位,左边补 0 按位与 a b,a 和 b 中各位按位进行“与”运算 | 按位或 a | b,a 和 b 中各位按位进行“或”运算 ^ 按位异或 a^b,a 和 b 中各位按位进行“异或”运算  9.1.2 按位取反运算符 按位取反运算符“~”是一个单目运算符,能对一个二进制数的每一位都取反,即 0 变 为 1,1 变为 0。例如: a= 0 0 0 1 1 0 1 0 /*十六进制为 1a*/ ~ a= 1 1 1 0 0 1 0 1 /*十六进制为 e5*/  9.1.3 左移运算符 左移运算符“”的功能是将一个数的各个二进制位全部向左平移若干位,左边移出的 部分予以忽略,右边空出的位置补零。如: a = 0 0 0 1 1 0 1 0  /*十六进制为 1a*/  a2 = 0 1 1 0 1 0 0 0  /*十六进制为 68*/  一个数据,每左移 1 位相当于乘以 2,左移 2 位相当于乘以 4,以此类推。  9.1.4 右移运算符 与左移相反,右移运算符 “”的功能是将一个数的各个二进制位全部向右平移若干 位,右边移出的部分予以忽略,左边空出的位置对于无符号数补零,对于有符号数,若原 符号位为 0,则补 0,若原符号位为 1,则全补 1。也就是右移后保持这个数的正负符号不 变。 例如,若变量 a 被定义成 unsigned char,即无符号型,则有: a = 1 0 0 1 1 0 1 0  /*十六进制为 9a*/  a2 = 0 0 1 0 0 1 1 0  /*十六进制为 26*/  若变量 a 被定义成 char,即有符号型,则有: a = 1 0 0 1 1 0 1 0  /*十六进制为 9a*/  a2 = 1 1 1 0 0 1 1 0  /*十六进制为 e6*/  同样,一个数据每右移 1 位相当于除以 2,右移 2 位相当于除以 4,以此类推。  9.1.5 按位与运算符 运算符 “”将其两边数据对应的各个二进制位分别进行“与”运算,即二者都为  1  时结果为 1,否则为 0。如: a = 1 0 1 1 1 0 1 0 /*十六进制为 ba*/

文档评论(0)

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

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

1亿VIP精品文档

相关文档