《C程序语言设计》课件.ppt

《C程序语言设计》课件.ppt

ID:57060372

大小:131.50 KB

页数:20页

时间:2020-07-30

《C程序语言设计》课件.ppt_第1页
《C程序语言设计》课件.ppt_第2页
《C程序语言设计》课件.ppt_第3页
《C程序语言设计》课件.ppt_第4页
《C程序语言设计》课件.ppt_第5页
资源描述:

《《C程序语言设计》课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十三章位运算学习目标位运算的有关概念和运算规律位段的概念课程内容13.1概述13.2位运算符和位运算13.3位段13.1概述C语言程序设计最大的一个特点就是可以对计算机硬件进行操作,其操作主要是通过位运算实现的。位运算很适合编写系统软件的需要,是C语言的重要特色。在计算机用于检测和控制领域中要用到位运算的知识。所谓位运算就是指进行二进制的运算。在系统软件中,常要处理二进制的问题。例如,将一个存储单元中的各二进制左移或者右移一位,两个数按位相加等。C语言提供位运算的功能,与其他高级语言相比,显然具有很大的优越性。C语言提供6种位运算符运算符含义例子运算功能

2、&按位与a&ba和b按位与

3、按位或a

4、ba和b按位或^按位异或a^ba和b按位异或~按位求反~aa按位取反<<左移位a<<2a左移2位>>右移位b>>3b右移3位说明:(1)"~"为单目运算符,其余均为双目运算符,优先级高低顺序:按位求反~移位按位与&按位异或^按位或

5、(2)运算量只能是整型或字符型数据,浮点数不能参与运算(3)参与运算时,操作数都必须转换成二进制形式,然后再执行按位运算13.2位运算符和位运算如果左移出的位不是1,则左移操作相当于乘法操作,左移一位相当于原数乘以2,左移n位,则相当于原数乘以2n左移位运算符<<格式:x<<位数规则:使操作

6、数的各位左移,低位补0,高位溢出。例:5<<2=20右移位运算符>>格式:x>>位数规则:使操作数的各位右移,移出的低位舍弃,高位补符号位。例:20>>2=5左移操作相当于除法操作,右移一位相当于原数除以2,右移n位,则相当于原数除以2n【例13.1】左移位1#include2voidmain()3{4inta=-1;inti=0;6for(i=0;i<17;i++)7{printf("%d<<%d=%dt",a,i,a<

7、-10xffff<<0=0xffff-1<<1=-20xffff<<1=0xfffe-1<<2=-40xffff<<2=0xfffc-1<<3=-80xffff<<3=0xfff8-1<<4=-160xffff<<4=0xfff0-1<<5=-320xffff<<5=0xffe0-1<<6=-640xffff<<6=0xffc0-1<<7=-1280xffff<<7=0xff80-1<<8=-2560xffff<<8=0xff00-1<<9=-5120xffff<<9=0xfe00-1<<10=-10240xffff<<10=0xfc00-1<<11=-2

8、0480xffff<<11=0xf800-1<<12=-40960xffff<<12=0xf000-1<<13=-81920xffff<<13=0xe000-1<<14=-163840xffff<<14=0xc000-1<<15=-327680xffff<<15=0x8000-1<<16=00xffff<<16=0x0整型数据是采用补码表示的。每左移一位相当于数据乘以2,当移位结果超出数据表示范围时,结果就不再正确。【例13.2】右移位1#include2voidmain()3{4inta=0xc57f;inti;6for(i=0;i<1

9、6;i++){printf("%d>>%d=%dt",a,i,a>>i);printf("0x%x>>%d=0x%x",a,i,a>>i);}}运行结果如下:-14977>>0=-149770xc57f>>0=0xc57f-14977>>1=-74890xc57f>>1=0xe2bf-14977>>2=-37450xc57f>>2=0xf15f-14977>>3=-18730xc57f>>3=0xf8af-14977>>4=-9370xc57f>>4=0xfc57-14977>>5=-4690xc57f>>5=0xfe2b-14977>>6=-235

10、0xc57f>>6=0xff15-14977>>7=-1180xc57f>>7=0xff8a-14977>>8=-590xc57f>>8=0xffc5-14977>>9=-300xc57f>>9=0xffe2-14977>>10=-150xc57f>>10=0xfff1-14977>>11=-80xc57f>>11=0xfff8-14977>>12=-40xc57f>>12=0xfffc-14977>>13=-20xc57f>>13=0xfffe-14977>>14=-10xc57f>>14=0xffff-14977>>15=-10xc57f>>15=0x

11、ffff整数-14977的补码是0xc57f。整型数据每右移一位相

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

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

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