全国计算机等级考试2C课程第12讲位运算.ppt

上传人:xt****7 文档编号:5210374 上传时间:2020-01-23 格式:PPT 页数:24 大小:392.31KB
返回 下载 相关 举报
全国计算机等级考试2C课程第12讲位运算.ppt_第1页
第1页 / 共24页
全国计算机等级考试2C课程第12讲位运算.ppt_第2页
第2页 / 共24页
全国计算机等级考试2C课程第12讲位运算.ppt_第3页
第3页 / 共24页
点击查看更多>>
资源描述
全国计算机等级考试3C课程 第十二讲位运算 2020 1 23 作者 张旭仟版权所有欢迎盗版 2 位运算的概念 前面我们所学的各种运算 都是以字节作为基本单位进行的 所谓位运算 就是以二进制位为基本单位进行的运算 语言提供了6种基本位运算符 如下所示 此外 位运算符也可以与赋值运算符一起组成复合赋值符 如 2020 1 23 作者 张旭仟版权所有欢迎盗版 3 位运算的概念 优先级 按位取反 优先级2位移 优先级5位与 优先级8位异或 优先级9位或 优先级10结合性 按位取反 右结合性其他左结合性说明 位运算符中除按位非 为单目运算符外 其他均为双目运算符 位运算的运算量只能是整型或字符型的数据 不能为实型数据 如果参加位运算的运算量是负数 则首先要将其以补码形式表示为二进制数 然后再按相应规则进行运算 2020 1 23 作者 张旭仟版权所有欢迎盗版 4 按位非 求反 运算 功能 对参与运算的数的各二进位按位求反 即将0变1 将1变0 例如 025是对八进制数25 即二进制数00010101 按位求反 计算方法如下 2020 1 23 作者 张旭仟版权所有欢迎盗版 5 按位非 求反 运算 例程 includemain inta 3 b 5 c c a 运算结果 c 4 2020 1 23 作者 张旭仟版权所有欢迎盗版 6 功能 把 左边的运算数的各二进位全部左移若干位 由 右边的数指定移动的位数运算规则低位补0 高位溢出丢弃 例如 左移运算 includemain inta 9 a a 1 printf a d n a 运算结果 a 18 2020 1 23 作者 张旭仟版权所有欢迎盗版 7 左移运算 说明从上面的例子可以看出 在不损失有效数字的情况下 每左移1位 相当于该数乘以2 左移2位相当于该数乘以2的2次方 4 15 2 结果为60 即相当于15乘以4 但此结论只适用于该数左移时被溢出舍弃的高位中不包含1的情况 例如 表达式a 4 是指把变量a的各二进位向左移动4位 如果有语句 a 3 3的二进制00000011 则左移4位相当于3 2 4 结果为 00110000 即十进制48 2020 1 23 作者 张旭仟版权所有欢迎盗版 8 右移运算 功能 把 左边的运算数的各二进位全部右移若干位 右边的数指定移动的位数说明 对于无符号数 右移时高位补零 对于有符号数 正数右移时在高位补0 负数右移时在高位补1 其中左边补0称 算术右移 左边补1称 逻辑右移 例如 若a 017 二进制形式为00001111 十进制为15 a 2运算后 舍弃低2位得到00000011 十进制为3 若a 5 二进制形式为11111011 a 2运算后 舍弃低2位得到11111110 十进制为 2 2020 1 23 作者 张旭仟版权所有欢迎盗版 9 右移运算 例程 main unsigneda b printf inputanumber scanf d 运行结果 inputanumber 255 a 255b 7由以上示例可以看出 右移一位相当于除以2 右移n位相当于除以2n 2020 1 23 作者 张旭仟版权所有欢迎盗版 10 小练习 1 若有以下程序 2009年9月 intr 8 printf d n r 1 输出结果是A 16B 8C 4D 2 2020 1 23 作者 张旭仟版权所有欢迎盗版 11 按位与运算 运算规则 参加运算的两个数据 按二进制位进行 与 运算 如果两个相应的二进制位都为 则该位的结果值为 否则为 即 2020 1 23 作者 张旭仟版权所有欢迎盗版 12 按位与运算 按位与的常用功能1 清零若想对一个存储单元置零 只要用一个全 的二进制数与其进行 运算 即可达到清零目的 例 若原存储单元的数为00101011 若要将其全部置为0 只需将其与二进制数00000000进行 运算即可 2020 1 23 作者 张旭仟版权所有欢迎盗版 13 按位与运算 按位与的常用功能2 取一个数中的特定位 若想对一个二进制数的某些位置零 其他位保持不变 只需将找一个数 对应于要置0的位全部为0 对应于要保持不变的位全部为1 然后做按位与运算即可 例 有16位的二进制数0010110010101100 要求将高8位全部置0 低8位保持不变 只需将其与二进制数0000000011111111进行 运算即可 2020 1 23 作者 张旭仟版权所有欢迎盗版 14 小练习 2 有以下程序 2010年3月 includemain inta 2 b 2 c 2 printf d n a b 程序运行后的输出结果是A 0B 1C 2D 3 2020 1 23 作者 张旭仟版权所有欢迎盗版 15 按位异或运算 运算规则 当两对应的二进位相异时 结果为1 反之为0 即 0 0 0 0 1 1 1 0 1 1 1 0 例 071 052 023 八进制数 2020 1 23 作者 张旭仟版权所有欢迎盗版 16 按位异或运算 运算符的应用 运算可以使特定位翻转 设有01111010 想使其低4位翻转 即1变为0 0变为1 可以将它与00001111进行 运算 即 运算结果 低 位正好是原数低 位的翻转 可见 要使哪几位翻转就将与其进行 运算的该几位置为 即可 2020 1 23 作者 张旭仟版权所有欢迎盗版 17 小练习 3 变量a中的数据用二进制表示的形式是01011101 变量b中的数据用二进制表示的形式是11110000 若要求将a的高4位取反 低4位不变 所要执行的运算是 2008年4月 A a bB a bC a bD a 4 2020 1 23 作者 张旭仟版权所有欢迎盗版 18 按位或运算 运算规则 只要对应的二个二进位有一个为1时 结果位就为1 即 例如 对于060 017 计算方法如下 2020 1 23 作者 张旭仟版权所有欢迎盗版 19 按位或运算 按位或的用途 按位或运算常用来对一个数据的某些位定值为 例如 如果想使一个数 的低 位改为 只需将 与 1111 进行按位或运算即可 例 是一个短整形数据 16位 有表达式 a 0377则将低 位全置为 高 位原样保留 说明 其中0377是8进制数 其二进制是11111111 2020 1 23 作者 张旭仟版权所有欢迎盗版 20 按位或运算 例程 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 23 作者 张旭仟版权所有欢迎盗版 21 小练习 4 有以下程序 includemain inta 5 b 1 t t a 2 b printf d n t 程序运行后的输出结果是A 21B 11C 6D 1 2020 1 23 作者 张旭仟版权所有欢迎盗版 22 位运算赋值运算符 位运算符与赋值运算符可以组成复合赋值运算符 如 例如 a b 相当于a a ba 2 相当于a a 2 2020 1 23 作者 张旭仟版权所有欢迎盗版 23 不同长度数据的位运算 注意 如果两个数据长度不同 例如a为int型 而b为short型 进行位运算时 系统会将二者按右端对齐 如果如果b为无符号整型或正数 则左侧16位补满0 若b为负数 则左侧16位补满1 2020 1 23 作者 张旭仟版权所有欢迎盗版 24 Thanklisten
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!