第三届全国中小学“教学中的互联网搜索”优秀教学案例评选
教案设计
【教案背景】 | ||
1.课题名称:C语言之位运算 2.面向学生:高职二年级 3.学科:计算机 4.课时:1 5.课前准备: 学生课前准备: (1)利用班级自习课其它时间上网了解C语言与其它计算机语言的区别,并了解C语言中位运算的概念与特点; (2)预习课本,了解位运算的编程方法; 教师课前准备: (1)可连接到Internet的多媒体教室; (2)搜集相关网络资料,结合教材总结归纳后制作多媒体课件; 了解C语言:baike.baidu/view/378391.htm C语言位运算:wenku.baidu/view/a3c70f641ed9ad51f01df2f1.html | ||
【教学课题】 | ||
本课的课题为C语言中的位运算,在教学过程中围绕以下三个教学目标: 知识目标:位运算的含义;基本位运算符;位运算符的应用; 情感目标:通过位运算学习,提高对C语言的认识,享受编程的乐趣; 能力目标:通过位运算学习,提高位运算编程的能力,进而实现对计算机硬件进行控制。 | ||
【教材分析】 | ||
设计理念: C语言是为描述系统而设计的,与其它高级语言相比,它的一个重要特点是具有汇编语言的功能,这主要表现在C语言提供了特有的位运算功能。位运算是C语言算法的基础,掌握位运算对以后编写软件有重要帮助。 学生分析: 学生学习过简单的二进制运算,对详细的位运算不熟悉,应注重入门引导。 教学重点: 位运算的概念及分类。实例解释及分析对比,掌握各种运算的规则。 教学难点: 位运算及其应用。通过实例讲解及应用,启思诱导。 | ||
【教学方法】 | ||
讲授法、演示法:多媒体课件讲授、配合板书。 任务驱动法:从实例入手,先实际后理论。 | ||
【教学过程】 | ||
教学过程 | 主 要 教 学 内 容 及 步 骤 | 时间分配 |
引 入 (加以说明) | 一、问题的引入 C语言程序设计最大的一个特点就是可以对计算机硬件进行操作,其操作主要是通过位运算实现的。 C语言特点: 汇编语言转c语言的软件wenku.baidu/view/bc1f62c34028915f804dc222.html C语言的重要性及学习方法: wenku.baidu/view/22e1f91a964bcf84b9d57bab.html 位运算很适合编写系统软件的需要,是C语言的重要特。在计算机用于检测和控制领域中要用到位运算的知识。所谓位运算就是指进行二进制的运算。在系统软件中,常要处理二进制的问题。例如,将一个存储单元中的各二进制左移或者右移一位,两个数按位相加等。C语言提供位运算的功能,与其他高级语言相比,显然具有很大的优越性。 | 5’ |
位运算符是重点 对于注意问题应强调说明 规则仿照基本运算符的规则 | 二、位运算的概念 1.位运算的概念 位运算实际就是对表示计算机中的数进行操作的运算符。 wenku.baidu/view/bf631c1fa8114431b90dd870.html 2.基本位运算符 位运算符的运算功能: www.qhnu.edu/depart/ncre/cprogram/frame/ce02.htm &:按位与 规则:将其两边的运算对象的对应位逐一进行按位逻辑与运算。 |:按位或 规则:将其两边的运算对象的对应位逐一进行按位逻辑或运算。 ^:按位异或 规则:参加运算的两个二进制位相同,则为假,不相同为真。 ~:按位取反 规则:单目运算符,对一个二进制数按照位取相反的数值。 <<:左移 规则:将一个数的二进制位全部左移若干位,对于移动后空出的位,用0来补充。 >>:右移 规则:将一个数的二进制位全部右移若干位,对于移动后空出的位,可以用0或1来补充,根据具体情况而定。 【注意】 wenku.baidu/view/4fd01a0c52ea551810a687d4.html (1)& 要和地址符区分开; (2)按位与、或、取反的运算规则和逻辑运算符一样; (3)左移和右移运算符移动后所空出的位置,用二进制位0或1来补充,根据具体情况而定。 3.位运算赋值运算符 位运算与赋值运算可以组成复合赋值运算符, 如: &= |= >>= <<= ^= 运算规则和前面的规则一致。 | 10’ |
读懂算法分析 用计算机去实际验证结果 算法分析要全面分析,从中得出规律 用C语言环境去实际验证 | 三、位运算的应用 wenku.baidu/view/fec49ddd5022aaea998f0f70.html 例1:取一个整数a,从右端开始的4~7位。 (1) 先使a右移4位; a >> 4 (2) 设置一个低4位全是1,其余全是0的数 ~ ( ~ 0 << 4 ) 即: 0:0000……000000 ~ 0:1111……111111 ~0 << 4:1111……110000 ~ ( ~ 0 << 4 ):0000……001111 (3) 将上面的两个数进行 & 运算 (a>>4)& ~ ( ~ 0 << 4 ) 程序实现如下: main() { unsigned a,b,c,d; scanf(“%o”,&a); b=a>>4; c=~ ( ~ 0 << 4 ); d=b&c; printf(“%o,%d,%o,%d\n”,a,b,c,d); } 例2:循环右移 如何使用位运算实现循环移位? dev.21tx/2007/05/14/10804.html zlgc.usx.edu/kc/dgdz/news_more.asp?id=1477 【算法分析】:要求将a进行循环移动,即进行如下操作: (1) 将a的右端n位先放到b中的高n位中。 b=a<<(16-n) (2) 将a右移n位,其左面高位补0。 c=a>>n (3) 将c和b进行按位或运算。 c=c|b 程序如下: main() { unsigned a,b,c; int n; scanf(“%o,%d”,&a,&n); b=a<<(16-n); c=a>>n; c=c|b; printf(“%o,%o”,a,c); } | 15’ |
四、思考与练习 编写一个函数getbits,从一个16位的单元中取出某几位(即该几位保留原汁,其余位为0)。函数调用形式为getbits(value ,n1,n2)。 参考: hi.baidu/justevenly/blog/item/e35ca77bf925fdf00ad18799.html | 10’ | |
五、小结 C语言的位运算是指在C语言中能进行二进制位的运算。位运算包括位逻辑运算和移位运算,逻辑运算包括:按位与、按位或、按位异或、按位取反;移位运算包括:左移和右移。利用位运算可以完成汇编语言的功能,如判断一个数据的某一位是否为1;保留一个数据中的某些位;将一个数据的某些位置为1;将一个数据的某些位翻转等等。移位运算包括算术移位和逻辑移位。 | 5’ | |
【教学反思】 | ||
本节课能理论联系实际,将枯燥的理论与实际应用相联系,并通过“百度搜索”相关资料,让学生有一定的直观了解,提高了动手能力及自我学习的能力,同时营造一个宽松的、生动活泼、主动求知的教学环境。而采用现代化的教学手段,通过丰富的网络教学资源,同时运用项目教学法,以任务驱动的方式,让学生在学中做、做中学,提高了学生的学习兴趣及自主学习能力。 | ||
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论