(13)--C语言课件第13章位运算.ppt

上传人:奉*** 文档编号:96451905 上传时间:2023-11-29 格式:PPT 页数:13 大小:143.84KB
返回 下载 相关 举报
(13)--C语言课件第13章位运算.ppt_第1页
第1页 / 共13页
(13)--C语言课件第13章位运算.ppt_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《(13)--C语言课件第13章位运算.ppt》由会员分享,可在线阅读,更多相关《(13)--C语言课件第13章位运算.ppt(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第13章章位运算位运算位运算功能是位运算功能是C语言的一大特色功能。语言的一大特色功能。所谓位运算是指所谓位运算是指针对针对数据中的数据中的二进制位二进制位进进行的运算。行的运算。只能对只能对整型、字符型整型、字符型数据进行位运算数据进行位运算。C语言中有语言中有6种基本位运算符。种基本位运算符。按位取反运算符按位取反运算符进行按位取反运算时,若运算位为进行按位取反运算时,若运算位为0,则结果位,则结果位为为1;若运算位为;若运算位为1时,则结果位为时,则结果位为0。例如:例如:shortinta=15,b=a;因为因为0000000000001111B=1111111111110000Bb

2、的结果为的结果为-16按位与运算符按位与运算符进行按位与运算时,只有相运算的两位均为进行按位与运算时,只有相运算的两位均为1时,时,结果位才为结果位才为1。例如:例如:shortinta=3,b=5,c=a&b;因为因为0000000000000011B&0000000000000101B-=0000000000000001Bc的结果为的结果为1按位或运算符按位或运算符进行按位或运算时,只有相运算的两位均为进行按位或运算时,只有相运算的两位均为0时,时,结果位才为结果位才为0。例如:例如:shortinta=3,b=5,c=a|b;因为因为0000000000000011B|000000000

3、0000101B-=0000000000000111Bc的结果为的结果为7按位异或运算符按位异或运算符进行按位异或运算时,若相运算的两位相异,则进行按位异或运算时,若相运算的两位相异,则结果位为结果位为1;若相运算的两位相同,则结果位;若相运算的两位相同,则结果位为为0。例如:例如:shortinta=15,b=10,c=ab;因为因为0000000000001111B0000000000001010B=0000000000000101Bc的结果为的结果为5。按位左移运算符按位左移运算符格式:变量格式:变量n其中其中n是左移的位数是左移的位数功能:用于将变量的内容左移功能:用于将变量的内容左移

4、n个二进制位。即个二进制位。即从左边去掉从左边去掉n位,从右边补上位,从右边补上n个个0。按位左移运算符按位左移运算符例如:例如:shortinta=15,b=a2;因为因为0000000000001111Bn其中其中n是右移的位数是右移的位数功能:用于将变量的内容右移功能:用于将变量的内容右移n个二进制位。即个二进制位。即从右边去掉从右边去掉n个二进制位,从左边补上个二进制位,从左边补上n个二进个二进制位。制位。例如:例如:shortinta=16,b=a2;因为因为0000000000010000B2=0000000000000100Bb的结果为的结果为4。对于无符号整数,左边对于无符号整

5、数,左边补补0;对于有符号整数,;对于有符号整数,左边左边补符号位补符号位。例如:例如:shortinta=-16,b=a2;因为因为1111111111110000B2=1111111111111100Bb的结果为的结果为-4。可见,可见,右移一位相当于被右移一位相当于被2整除(向下取整)整除(向下取整)。若两个运算量的位数不同,则按右对齐将若两个运算量的位数不同,则按右对齐将较短者较短者补齐。补齐。对于无符号整数,左边对于无符号整数,左边补补0 0;对于有符号整;对于有符号整数,左边数,左边补符号位补符号位。位运算举例位运算举例【例例】用位运算分离出一个无符号整数的第用位运算分离出一个无符号整数的第4至至第第7位。位。#includemain()unsignedshorta,b,c,d;scanf(%o,&a);b=a4;c=(04);d=b&c;printf(%o,%dn,a,a);printf(%o,%dn,d,d);【例例】用位运算将一个无符号整数循环右移若干位。用位运算将一个无符号整数循环右移若干位。程序如下:程序如下:#includemain()unsignedshorta,b,c;intn;scanf(%o%d,&a,&n);b=an;c=c|b;printf(%o,%dn,a,c);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁