《C语言编程实践》PPT课件

《C语言编程实践》PPT课件

ID:45086603

大小:468.00 KB

页数:93页

时间:2019-11-09

《C语言编程实践》PPT课件_第1页
《C语言编程实践》PPT课件_第2页
《C语言编程实践》PPT课件_第3页
《C语言编程实践》PPT课件_第4页
《C语言编程实践》PPT课件_第5页
资源描述:

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

1、上章回顾宏定义特点和注意细节条件编译特点和主要用处文件包含的路径查询规则C语言扩展宏定义的用法C语言编程实践第二章预习检查异或的运算符是什么宏定义最主要的特点是什么请列举条件编译三大用法在文件包含中<>和“”有什么区别如何取得整数register中的第五位值本章结构指针特性C语言编程实践C语言常犯错误C语言关键词C语言编程调试C语言编程要点位段位运算课程目标了解位运算的实际应用。了解C语言几个重要关键词的特性和他们之间区别熟悉C语言编程要点熟悉C语言常见的语法错误以及解决方法了解如何去定位错误以及解决错误2

2、C语言编程实践位运算指针特性C语言关键词C语言几个以混淆的概念C语言编程易犯毛病集合2.1位运算按位与运算按位或运算按位异或运算求反运算左移运算右移运算2.1位运算位运算符的含义位运算是指进行二进制位的运算。功能:c语言提供对内存单元的二进制位的操作,使得c语言能够编写系统软件.位运算符&:按位与

3、:按位或^:按位异或~:取反<<:左移>>:右移2.1位运算要点:位运算除~以外,均为二目运算;运算对象只能为整型或字符型数据.各个位运算符号的使用:2.1.1按位与运算按位与──&格式:x&y主要用途:取(或保

4、留)1个数的某(些)位,其余各位置0规则:对应位均为1时才为1,否则为0:3&9=1。例如,3&9=1:0011&1001────0001=12.1.2按位或运算按位或──

5、格式:x

6、y主要用途:参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1规则::对应位均为0时才为0,否则为1:3

7、9=11。例如,3

8、9=11:0011

9、1001────1011=112.1.2按位异或运算按位异或──^格式:x^y规则:对应位相同时为0,不同时为1:3^9=10。主要用途:使1个数的某(

10、些)位翻转(即原来为1的位变为0,为0的变为1),其余各位不变例子:00001001^0000010100001100(十进制为12)2.1.3求反运算求反──~格式:~y规则:各位翻转,即原来为1的位变成0,原来为0的位变成1:在IBM-PC机中,~0=0xffff,~9=0xfff6。主要用途:间接地构造一个数,以增强程序的可移植性2.1.4左移运算按位左移──<<格式:x<<位数规则:使操作数的各位左移,低位补0,高位溢出:5<<2=20。2.1.5右移运算按位右移──>>格式:x>>位数规则:使操作

11、数的各位右移,移出的低位舍弃;高位:对无符号数和有符号中的正数,补0;有符号数中的负数,取决于所使用的系统:补0的称为“逻辑右移”,补1的称为“算术右移”。例如,20>>2=5说明x、y和“位数”等操作数,都只能是整型或字符型数据。除按位取反为单目运算符外,其余均为双目运算符。参与运算时,操作数x和y,都必须首先转换成二进制形式,然后再执行相应的按位运算。例如,5<<2=20:0101→10100,20>>2=5:10100→00101。2.1.6位运算例子例2题目:从键盘上输入1个正整数给int变量num

12、,输出由8~11位构成的数(从低位、0号开始编号)基本思路:(1)使变量num右移8位,将8~11位移到低4位上。(2)构造1个低4位为1、其余各位为0的整数。(3)与num进行按位与运算。/*程序功能:输出一个整数中由8~11位构成的数*/main(){intnum,mask;printf("Inputaintegernumber:");scanf("%d",&num);num>>=8;/*右移8位,将8~11位移到低4位上*/mask=~(~0<<4);/*间接构造1个低4位为1、其余各位为0的整数*/

13、printf("result=0x%x",num&mask);}程序运行情况:Inputaintegernumber:1000←┘result=0x3程序说明:~(~0<<4)按位取0的反,为全1;左移4位后,其低4位为0,其余各位为1;再按位取反,则其低4位为1,其余各位为0。这个整数正是我们所需要的。2.1.6位运算例子例1题目:从键盘上输入1个正整数给int变量num,按二进制位输出该数。#include"stdio.h"main(){intnum,mask,i;printf("Inputaint

14、egernumber:");scanf("%d",&num);mask=1<<15;/*构造1个最高位为1、其余各位为0的整数(屏蔽字)*/printf("%d=",num);for(i=1;i<=16;i++){putchar(num&mask?’1’:‘0’);/*输出最高位的值(1/0)*/num<<=1;/*将次高位移到最高位上*/if(i%4==0)putchar(‘,’);/*四位一组,用逗号分开*/

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

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

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