第12讲 位运算.ppt_第1页
第12讲 位运算.ppt_第2页
第12讲 位运算.ppt_第3页
第12讲 位运算.ppt_第4页
第12讲 位运算.ppt_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全国计算机等级考试3C课程 第11讲位运算 2020 1 6 作者 张旭仟版权所有欢迎盗版 2 位运算符也可以与赋值符一起组成复合赋值符 如 说明 位运算符中除 以外 均为双目运算符 运算量只能是整型或字符型的数据 不能为实型数据 位运算的概念 前面我们所学的各种运算 都是以字节作为基本单位进行的 所谓位运算 就是以二进制位为基本单位进行的运算 语言提供了6种位运算符 2020 1 6 作者 张旭仟版权所有欢迎盗版 3 按位与运算 运算规则 参加运算的两个数据 按二进制位进行 与 运算 如果两个相应的二进制位都为 则该位的结果值为 否则为 即 注意 参加位运算的运算量必须都是整形或字符型数据 如果参加 运算的是负数 则首先要以补码形式表示为二进制数 然后再按相应规则进行运算 2020 1 6 作者 张旭仟版权所有欢迎盗版 4 按位与运算 按位与的常用功能 清零若想对一个存储单元置零 只要用一个全 的二进制数与其进行 运算 即可达到清零目的 例 若原存储单元的数为00101011 若要将其全部置为0 只需将其与二进制数00000000进行 运算即可 2020 1 6 作者 张旭仟版权所有欢迎盗版 5 按位与运算 按位与的常用功能 取一个数中的特定位 若只想对一个二进制数的某些位置零 其他位保持不变 只需将找一个数 对应于要置0的位全部为0 对应于要保持不变的位全部为1 然后做按位与运算即可 例 有16位的二进制数0010110010101100 要求将高8位全部置0 低8位保持不变 只需将其与二进制数0000000011111111进行 运算即可 2020 1 6 作者 张旭仟版权所有欢迎盗版 6 按位与运算 例如 要把变量a的高八位清0 保留低八位 只需作如下运算 a 255 0000000011111111 includemain inta scanf d 运算结果 65535 Befor 65535After 255 2020 1 6 作者 张旭仟版权所有欢迎盗版 7 按位或运算 运算规则 只要对应的二个二进位有一个为1时 结果位就为1 即 2020 1 6 作者 张旭仟版权所有欢迎盗版 8 按位或运算 按位或的用途 按位或运算常用来对一个数据的某些位定值为 例如 如果想使一个数 的低 位改为 只需将 与 1111 进行按位或运算即可 例 是一个短整形数据 16位 有表达式 a 0377则将低 位全置为 高 位原样保留 说明 其中0377是8进制数 其二进制是11111111 2020 1 6 作者 张旭仟版权所有欢迎盗版 9 按位或运算 例程 includemain inta 9 b 5 c c a b printf a d nb d nc d n a b c 运算结果 a 9b 5c 13 2020 1 6 作者 张旭仟版权所有欢迎盗版 10 按位异或运算 运算规则 当两对应的二进位相异时 结果为1 反之为0 即 0 0 0 0 1 1 1 0 1 1 1 0 例 071 052 023 八进制数 2020 1 6 作者 张旭仟版权所有欢迎盗版 11 按位异或运算 运算符的应用 运算可以使特定位翻转 设有01111010 想使其低4位翻转 即1变为0 0变为1 可以将它与00001111进行 运算 即 运算结果 低 位正好是原数低 位的翻转 可见 要使哪几位翻转就将与其进行 运算的该几位置为 即可 2020 1 6 作者 张旭仟版权所有欢迎盗版 12 按位异或运算 例程 includemain inta 9 a a 5 printf a d n a 运算结果 a 15 2020 1 6 作者 张旭仟版权所有欢迎盗版 13 按位非 求反 运算 功能 对参与运算的数的各二进位按位求反 即将0变1 将1变0 例如 025是对八进制数25 即二进制数00010101 按位求反 注意 按位非是单目运算符 优先级2级 右结合性 2020 1 6 作者 张旭仟版权所有欢迎盗版 14 按位非 求反 运算 例程 includemain inta 3 b 5 c c a 运算结果 c 4 2020 1 6 作者 张旭仟版权所有欢迎盗版 15 功能 把 左边的运算数的各二进位全部左移若干位 由 右边的数指定移动的位数运算规则低位补0 高位溢出丢弃 例如 左移运算 includemain inta 9 a a 1 printf a d n a 运算结果 a 18 2020 1 6 作者 张旭仟版权所有欢迎盗版 16 左移运算 说明从上面的例子可以看出 在不损失有效数字的情况下 每左移1位 相当于该数乘以2 左移2位相当于该数乘以2的2次方 4 15 2 结果为60 即相当于15乘以4 但此结论只适用于该数左移时被溢出舍弃的高位中不包含1的情况 例如 表达式a 4 是指把变量a的各二进位向左移动4位 如果有语句 a 3 3的二进制00000011 则左移4位后的结果为 00110000 即十进制48 2020 1 6 作者 张旭仟版权所有欢迎盗版 17 右移运算 功能 把 左边的运算数的各二进位全部右移若干位 右边的数指定移动的位数说明 对于无符号数 右移时高位补零 对于有符号数 正数右移时在高位补0 负数右移时在高位补1 其中左边补若干0称 算术右移 左边补若干1称 逻辑右移 例如 若a 017 二进制形式为00001111 十进制为15 a 2运算后 舍弃低2位得到00000011 十进制为3 若a 5 二进制形式为11111011 a 2运算后 舍弃低2位得到11111110 十进制为 2 2020 1 6 作者 张旭仟版权所有欢迎盗版 18 右移运算 例程 main unsigneda b printf inputanumber scanf d 运行结果 inputanumber 255 a 255b 7由以上示例可以看出 右移一位相当于除以2 右移n位相当于除以2n 2020 1 6 作者 张旭仟版权所有欢迎盗版 19 位运算赋值运算符 位运算符与赋值运算符可以组成复合赋值运算符 如 例如 a b 相当于a a ba 2 相当于a a 2 2020 1 6 作者 张旭仟版权所有欢迎盗版 20 不同长度数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论