|  客服中心  |  合作联系
搜刊网
论文下载
您当前位置
首页 > 论文下载 > 教育科学 > C语言二进制位运算教学设计
C语言二进制位运算教学设计
来源:互联网 sk004 | 魏书堤,赵辉煌
【分  类】 教育科学
【关 键 词】 二进制;位运算;C语言;指令
【来  源】 互联网
【收  录】 中文学术期刊网
正文:

  二进制是计算技术中广泛采用的一种数制。二进制数是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。二进制数也是采用位置计数法,其位权是以2为底的幂[1]。 二进制位运算对于数字信号的处理,硬件内存的读写都非常的重要。比如航天火箭的指令解码,挑点参数的计算,特征码的处理。而上述的数据处理都要用到二进制的与、异或、移位等运算。

  大学的理工类学生,学习完计算机基础课程后,就进入了计算机C语言学习,基本掌握了二进制的原码、补码及二进制的基本元算,通过对C语言变量、常量以及数据的存储格式的学习,了解了字节(byte)、位(bit)等存储单元[2]的关系,而对于二进制的位运算应用起来比较困难,部分同学掌握了二进制位运算的基本规律,也很难应用位运算解决一些实际问题。为了更好地帮助学生掌握二进制位运算的基本理论,拓展学生解决实际问题的能力,提高学生计算思维,文章按照了解——掌握——运用的认知规律进行了教学设计。首先回顾二进制的基本概念及数据表示,然后重点讲解二进制的位运算,最后利用位运算解决实际问题。

  回顾二进的基本概念

  (1) 二进制位与字节

  计算机系统的内存储器,是由许多称为字节的单元组成的,1个字节由8个二进制位(bit)构成,每位的取值为0/1。最右端的那1位称为“最低位”,编号为0;最左端的那1位称为“最高位”,而且从最低位到最高位顺序,依次编号(重点突出突出高低位)。图1是1个字节各二进制位的编号。

  (2)数值的原码表示

  数值的原码表示是指,将最高位用作符号位(0表示正数,1表示负数),其余各位代表数值本身的绝对值(以二进制形式表示)的表示形式。为简化描述起见,本节约定用1个字节表示1个整数。例如,+9的原码是00001001,符号位上的0表示正数,如图2

  -9的原码是10001001。符号位上的1表示负数,如图3

  (3)数值的反码表示(做重点讲解,并进行实例板书)

  数值的反码表示分两种情况:

  (1)正数的反码:与原码相同。

  例如,+9的反码是00001001。

  (2)负数的反码:符号位为1,其余各位为该数绝对值的原码按位取反(1变0、0变1)。

  例如,-9的反码:因为是负数,则符号位为“1”;其余7位为-9 的绝对值+9的原码0001001按位取反为1110110,所以-9的反码是11110110。

  (4)数值的补码表示(做重点讲解,并进行实例板书,重点突出补码求取的过程)

  数值的补码表示分两种情况:

  1正数的补码:与原码相同。

  例如,+9的补码是00001001。

  2负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。

  例如,-9的补码:因为是负数,则符号位为“1”;其余7位为-9的绝对值+9的原码0001001按位取反为1110110;再加1,所以-9的补码是11110111。

  已知一个数的补码,求原码的操作分两种情况:

  1如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码。

  2如果补码的符号位为“1”,表示是一个负数,求原码的操作可以是:符号位不变,其余各位取反,然后再整个数加1。例如,已知一个补码为11111001,则原码是10000111(-7):因为符号位为“1”,表示是一个负数,所以该位不变,仍为“1”;其余7位1111001取反后为0000110;再加1,所以是10000111(板书整个运算过程)。

  (5)数值在计算机中的表示──补码

  在计算机系统中,数值一律用补码表示(存储),原因在于:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。

  板书实例:9+(-9)二进制运算

  重点讲解位运算

  (1)按位与:&

  1格式:x&y

  2规则:对应位均为1时才为1,否则为0:3&9=1。

  板书实例:3&9=1

  3主要用途:取(或保留)1个数的某(些)位,其余各位置0。

  (2)按位或:|

  1格式:x|y

  2规则:对应位均为0时才为0,否则为1:3|9=11。

  板书实例:3|9=11

  3主要用途:将1个数的某(些)位置1,其余各位不变。

  (3)按位异或:^

  1格式:x^y

  2规则:对应位相同时为0,不同时为1:3^9=10。

  3主要用途:使1个数的某(些)位翻转(即原来为1的位变为0,为0的 变为1,其余各位不变。

  板书实例:3^9=10

  (4)按位取反:~

  1格式:~x

  2)规则:各位翻转,即原来为1的位变成0,原来为0的位变成1:在

  IBM-PC机中,~0=0xffff,~9=0xfff6。

  3主要用途:间接地构造一个数,以增强程序的可移植性。

  (5)按位左移:<<

  1)格式:x<< 位数

  2规则:使操作数的各位左移,低位补0,高位溢出:5<<2=20。

  板书实例:5<<2=20

  (6)按位右移:>>

  1)格式:x>>位数

  2规则:使操作数的各位右移,移出的低位舍弃;高位:

  a对无符号数和有符号中的正数,补0;

  b有符号数中的负数,取决于所使用的系统:补0的称为“逻辑右移”,补1的称为“算术右移”。例如,20 >> 2=5。

  知识拓展,实际应用

  (1) 指令解码

  在航天领域中,火箭的飞行都受到相应的指令控制,如何知道这些指令被执行,一般来说,在雷达接受到的帧格式的数据中,其中会有四个字节带有指令的特征码,一般为高5位或者是高7位,而余下的低位则存放指令的执行时间,一般精确到毫秒。如图4:其中指令码为11001

  图4

  如何来提取指令的特征吗和发生的时间,就要用到二进制的与位运算,将指令码与时间分开。先解决指令的特征吗,后解出指令发生的时间,解决过程如下:

  将上图4中的二进制数与下面图5中的二进制数相与,得到结果如图5,再将图4二进制换算成的十进制数减去图6二进制换算成十进制数,便得到指令时间。

  图5(高5位为1其余位为0)

  图6(指令码)

  板书求解过程(图7):

  图7(求解过程)

  C语言实现代码如下(现场调试、演示):

  #include stdio.h

  Main(){

  Unsigned long lz,zl,zl0,timep;//zl代表指令,lz代表四字节的指令数,zl0代表与运算的指令值,timep代表指令发生的时间

  zl=3355443200;//二进制码如图5

  lz=346560640;

  if((lz&4160749568)==zl){//lz与高5位为1其余位为0的数

  timep=lz-zl;//得到指令发生时间(单位为毫秒)

  }

  Printf(timep);

  }

  (2)多布尔字段二进制表示

相关推荐
热门期刊
现代电力《现代电力》
《现代电力》杂志,于1984年经国家新闻出版总署批准正式创刊,CN:11-3818/TM,本刊在国内外有广泛的覆盖面,题材新颖,信息量大、时效性强的特点,其中主要栏目有:电力市场...
肿瘤药学《肿瘤药学》
《肿瘤药学》杂志,于2011年经国家新闻出版总署批准正式创刊,CN:43-1507/R,本刊在国内外有广泛的覆盖面,题材新颖,信息量大、时效性强的特点,其中主要栏目有:药物分析、...
人才开发《人才开发》
《人才开发》(月刊)创刊于1986年,是上海人才研究会主办,上海市人事局主管的人才学专业理论刊物。研究中国人才问题,探讨人才开发途径,传播人才学信息,普及人才学知识,推...
工业微生物《工业微生物》
《工业微生物》杂志,于1971年经国家新闻出版总署批准正式创刊,CN:31-1438/Q,本刊在国内外有广泛的覆盖面,题材新颖,信息量大、时效性强的特点,其中主要栏目有:综述专论...
西南大学学报(自然科学版)《西南大学学报(自然科学版)》
《西南大学学报》杂志,于1957年经国家新闻出版总署批准正式创刊,CN:50-1189/N,本刊在国内外有广泛的覆盖面,题材新颖,信息量大、时效性强的特点,其中主要栏目有:植物保...
调研世界《调研世界》
《调研世界》杂志,于1988年经国家新闻出版总署批准正式创刊,CN:11-3705/C,本刊在国内外有广泛的覆盖面,题材新颖,信息量大、时效性强的特点,其中主要栏目有:新观察、视...
友情链接
中教杯 国家新闻出版总署 中国知网 万方数据 维普网 中国科学院 中国国家图书馆 央视英文版 中国留学网 中青网 中国国家人才网 中国经济网 中国日报网 中国新闻网 中国学术期刊网
关于我们
平台简介
诚聘英才
企业文化
竞争优势
版权信息
服务条款
客服承诺
常见问题
版权声明
合作加盟
期刊加盟
广告服务
联系我们
网站导航
期刊大全
论文下载
课题申报
学术会议
编辑QQ
编辑联络
2007-2023
中文学术期刊检索机构
bianjibu777@qq.com
联系我们

版权所有©2007- 2023 中国学术期刊网(qikanw.com) All Rights Reserved 京ICP备2021008252号
本站是学术论文网络平台,若期刊网有侵犯您的版权,请及时与期刊网客服取得联系,联系信箱: bianjibu777@qq.com    
中国学术期刊网