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

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

ID:40097784

大小:392.31 KB

页数:24页

时间:2019-07-21

全国计算机等级考试2c课程第12讲位运算_第1页
全国计算机等级考试2c课程第12讲位运算_第2页
全国计算机等级考试2c课程第12讲位运算_第3页
全国计算机等级考试2c课程第12讲位运算_第4页
全国计算机等级考试2c课程第12讲位运算_第5页
资源描述:

《全国计算机等级考试2c课程第12讲位运算》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、全国计算机等级考试3C课程第十二讲位运算位运算的概念前面我们所学的各种运算,都是以字节作为基本单位进行的。所谓位运算,就是以二进制位为基本单位进行的运算C语言提供了6种基本位运算符,如下所示:此外,位运算符也可以与赋值运算符一起组成复合赋值符。如:&=、

2、=、^=、>>=、<<=运算符含义运算符含义&与~取反

3、或<<左移∧异或>>右移8/8/20212作者:张旭仟版权所有欢迎盗版位运算的概念优先级:按位取反(~)优先级2位移(<<、>>)优先级5位与(&)优先级8位异或(^)优先级9位或(

4、)优先级10结合性:按位

5、取反(~)右结合性其他左结合性说明:位运算符中除按位非(~)为单目运算符外,其他均为双目运算符。位运算的运算量只能是整型或字符型的数据,不能为实型数据。如果参加位运算的运算量是负数,则首先要将其以补码形式表示为二进制数,然后再按相应规则进行运算。8/8/20213作者:张旭仟版权所有欢迎盗版按位非(求反)运算:~功能:对参与运算的数的各二进位按位求反,即将0变1,将1变0。例如:~025是对八进制数25(即二进制数00010101)按位求反,计算方法如下:0000000000010101~111111111110

6、1010(八进制数177752)8/8/20214作者:张旭仟版权所有欢迎盗版按位非(求反)运算:~例程#includemain(){inta=3,b=5,c;c=~a&b;printf("c=%d",c);}运算结果:c=48/8/20215作者:张旭仟版权所有欢迎盗版功能:把“<< ”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数运算规则低位补0,高位溢出丢弃。例如:左移运算:<<#includemain(){inta=9;a=a<<1;print

7、f("a=%d",a);}运算结果:a=188/8/20216作者:张旭仟版权所有欢迎盗版左移运算:<<说明从上面的例子可以看出,在不损失有效数字的情况下,每左移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)。8/8/

8、20217作者:张旭仟版权所有欢迎盗版右移运算:>>功能:把“>>”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数说明:对于无符号数:右移时高位补零;对于有符号数:正数右移时在高位补0,负数右移时在高位补1。其中左边补0称“算术右移”,左边补1称“逻辑右移”。例如:若a=017,二进制形式为00001111(十进制为15);a>>2运算后,舍弃低2位得到00000011(十进制为3)若a=-5,二进制形式为11111011;a>>2运算后,舍弃低2位得到11111110(十进制为-2)8/8/

9、20218作者:张旭仟版权所有欢迎盗版右移运算:>>例程main(){unsigneda,b;printf("inputa number: ");scanf("%d",&a);b=a>>5;printf("a=%dtb=%d",a,b);}运行结果:inputanumber:255a=255b=7由以上示例可以看出,右移一位相当于除以2,右移n位相当于除以2n。8/8/20219作者:张旭仟版权所有欢迎盗版小练习:1、若有以下程序(2009年9月)intr=8;printf("%d",r>>1);输出

10、结果是A)16B)8C)4D)28/8/202110作者:张旭仟版权所有欢迎盗版按位与运算:&运算规则:参加运算的两个数据,按二进制位进行“与”运算。如果两个相应的二进制位都为1,则该位的结果值为1;否则为0。即:0&0=0,0&1=0,1&0=0,1&1=1例:3&500000011(3)&00000101(5)00000001(1)8/8/202111作者:张旭仟版权所有欢迎盗版按位与运算:&按位与的常用功能1:清零若想对一个存储单元置零,只要用一个全0的二进制数与其进行&运算,即可达到清零目的。例:若原存储单

11、元的数为00101011,若要将其全部置为0,只需将其与二进制数00000000进行&运算即可。00101011&00000000000000008/8/202112作者:张旭仟版权所有欢迎盗版按位与运算:&按位与的常用功能2:取一个数中的特定位:若想对一个二进制数的某些位置零,其他位保持不变,只需将找一个数(对应于要置0的位全部为0,对应于要保持不变的位全

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。