第三届全国中小学“教学中的互联网搜索”优秀教学案例评选
教案设计
教案背景
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来补充。
>>:右移
规则:将一个数的二进制位全部右移若干位,对于移动后空出的位,可以用01来补充,根据具体情况而定。
【注意】
wenku.baidu/view/4fd01a0c52ea551810a687d4.html
1& 要和地址符区分开;
2)按位与、或、取反的运算规则和逻辑运算符一样;
    3)左移和右移运算符移动后所空出的位置,用二进制位01来补充,根据具体情况而定。
3.位运算赋值运算符
位运算与赋值运算可以组成复合赋值运算符,
如:
    &=    |=    >>=    <<=    ^=
运算规则和前面的规则一致。
10
读懂算法分析
用计算机去实际验证结果
算法分析要全面分析,从中得出规律
用C语言环境去实际验证
三、位运算的应用
wenku.baidu/view/fec49ddd5022aaea998f0f70.html
1:取一个整数a,从右端开始的47位。
(1) 先使a右移4位;
a >> 4
(2) 设置一个低4位全是1,其余全是0的数
( 0 << 4 )
  即:              00000……000000
01111……111111
0 << 41111……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) cb进行按位或运算。
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小时内删除。