论文部分内容阅读
在计算机教学过程中,数制之间的转换及溢出的判断等问题,让每个入门学习者感到非常困难。人们在日常生活中习惯于十进制数据,但计算机中的数据表示和存储都是二进制形式的,二进制是计算机学习者必须掌握的数据类型,怎样理解二进制与其他进制之间的转换及溢出判断等问题?本文拟就二进制学习方法与技巧,谈一谈自己的心得。
一、进制转换技巧
在所有的计算机教材中,涉及到进制转换的内容,都是按部就班从二进制的表示开始,在二进制、八进制、十六进制与十进制之间的转换中,都使用短除法来转换数据,使学习者觉得比较麻烦,接受困难,教师也感到棘手。如果换个方式来讲这个问题,进制转换的学习就会变得很简单。每一位二进制代表的数据的权数是2n-1,在进制转换过程中实际上是二进制数权数之间的累加和拆分过程,而其他进制之间的转换以二进制作为中间过渡。下表列出了二进制数据的位数与权数之间的对应关系。
二进制数据表示及实例表
以01100101为例,按表中的位权对应关系,二进制数据中位1从表中可查出其代表十进制数据的权值,当前位的值为0,其权值也为0,这样很容易算出一个二进制数据的十进制大小。即01100101的十进制大小就为64+32+4+1=101。反之,例如要求将217这个数据转化成二进制,利用表中的原理其实很简单就可以得到,因为217大于128,则在128(D7)位就必须有一个1,减去128后得89,大于64,同样64(D6)这一位也有一个1,减去64得26,不够32,这样32(D5)这一位就只能为0,26大于16,在16(D4)这一位为1……以此类推,最终得到二进制数据为11011010。以此类推,即使遇到很大的数据也不需要用短除法的方式,只要作简单的口算就可以完成二进制与十进制之间的转换。
二、数据表示和溢出判断
在二进制数据运算中,多数学生搞不清楚什么叫溢出、什么叫进位,很容易将溢出与进位混为一谈。
要搞清楚进位与溢出的关系,首先要先清楚计算机内部数据是怎么表示的。计算机内部表示数据都是采用二进制的补码表示,补码在参加运算时,符号位与数据一起参加运算,只要结果不溢出,那么结果就是正确的。既然溢出不可避免,那怎样判断呢?通常采用双高位判别法来判断数据的运算结果是否产生溢出。数据的最高位叫做符号位,次高位(第二位)即数据值最高位为最高数据位,双高位判别法同时采用这两位来判断数据溢出或进位。
下面以4个实例加法来说明数据的溢出或进位(假设计算机字长8位),如图1所示。
图1、补码加法实例
分析可以看出,例1中双高位都没有进位,其结果为4是正确的;例2中双高位都有进位,结果是正确的;例3中符号位没有进位,最高数据位有进位,两个正数相加结果变成了负数,显然是错误的;例4中符号位有进位,最高数据没有进位,运算结果是一个正数,显然也是错误的。
三、二进制应用的举例
掌握了进制表示的基本特点之后,在进制应用中也会得心应手。在控制专业中,很多人觉得要根据一个连接电路图判断其端口或者根据端口大致画出电路图是一件很困难的事情,要是大家能够熟练地掌握二进制的一些特征,这个困难也就迎刃而解了。
图2、端口的逻辑电路图
数字电路图2,学生对这个图非常熟悉,类似的电路在我们的教材中有很多,很多学生不知道怎样根据电路判断其端口地址。其实这个电路的输出非常简单,要使电路输出有效,须使A0、A5两根输入线处于低电平状态,其它为高电平,OUT端有效的输出只能在输入端状态为11011110B,本电路的端口地址为0DEH。
四、结束语
本文介绍了二进制教学中出现的问题,并提出了解决问题的方法、技巧及应用思路。在教学实践中加以应用,效果良好。只有充分理解和掌握了二进制数据的表示和特点,才能为以后的学习奠定良好的基础。
参考文献
[1]杨晓东 等 主编 微型计算机原理与接口技术.机械工业出版社,2007年版。
[2]冯文旭 等 主编 单片机原理及应用.机械工业出版社,2008年版。
[3]戴梅萼 主编 微型计算机技术及应用.清华大学出版社,2006年版。
[4]陈建铎 等 编著 微型计算机原理及应用.人民邮电出版社,2006年版。
一、进制转换技巧
在所有的计算机教材中,涉及到进制转换的内容,都是按部就班从二进制的表示开始,在二进制、八进制、十六进制与十进制之间的转换中,都使用短除法来转换数据,使学习者觉得比较麻烦,接受困难,教师也感到棘手。如果换个方式来讲这个问题,进制转换的学习就会变得很简单。每一位二进制代表的数据的权数是2n-1,在进制转换过程中实际上是二进制数权数之间的累加和拆分过程,而其他进制之间的转换以二进制作为中间过渡。下表列出了二进制数据的位数与权数之间的对应关系。
二进制数据表示及实例表
以01100101为例,按表中的位权对应关系,二进制数据中位1从表中可查出其代表十进制数据的权值,当前位的值为0,其权值也为0,这样很容易算出一个二进制数据的十进制大小。即01100101的十进制大小就为64+32+4+1=101。反之,例如要求将217这个数据转化成二进制,利用表中的原理其实很简单就可以得到,因为217大于128,则在128(D7)位就必须有一个1,减去128后得89,大于64,同样64(D6)这一位也有一个1,减去64得26,不够32,这样32(D5)这一位就只能为0,26大于16,在16(D4)这一位为1……以此类推,最终得到二进制数据为11011010。以此类推,即使遇到很大的数据也不需要用短除法的方式,只要作简单的口算就可以完成二进制与十进制之间的转换。
二、数据表示和溢出判断
在二进制数据运算中,多数学生搞不清楚什么叫溢出、什么叫进位,很容易将溢出与进位混为一谈。
要搞清楚进位与溢出的关系,首先要先清楚计算机内部数据是怎么表示的。计算机内部表示数据都是采用二进制的补码表示,补码在参加运算时,符号位与数据一起参加运算,只要结果不溢出,那么结果就是正确的。既然溢出不可避免,那怎样判断呢?通常采用双高位判别法来判断数据的运算结果是否产生溢出。数据的最高位叫做符号位,次高位(第二位)即数据值最高位为最高数据位,双高位判别法同时采用这两位来判断数据溢出或进位。
下面以4个实例加法来说明数据的溢出或进位(假设计算机字长8位),如图1所示。
图1、补码加法实例
分析可以看出,例1中双高位都没有进位,其结果为4是正确的;例2中双高位都有进位,结果是正确的;例3中符号位没有进位,最高数据位有进位,两个正数相加结果变成了负数,显然是错误的;例4中符号位有进位,最高数据没有进位,运算结果是一个正数,显然也是错误的。
三、二进制应用的举例
掌握了进制表示的基本特点之后,在进制应用中也会得心应手。在控制专业中,很多人觉得要根据一个连接电路图判断其端口或者根据端口大致画出电路图是一件很困难的事情,要是大家能够熟练地掌握二进制的一些特征,这个困难也就迎刃而解了。
图2、端口的逻辑电路图
数字电路图2,学生对这个图非常熟悉,类似的电路在我们的教材中有很多,很多学生不知道怎样根据电路判断其端口地址。其实这个电路的输出非常简单,要使电路输出有效,须使A0、A5两根输入线处于低电平状态,其它为高电平,OUT端有效的输出只能在输入端状态为11011110B,本电路的端口地址为0DEH。
四、结束语
本文介绍了二进制教学中出现的问题,并提出了解决问题的方法、技巧及应用思路。在教学实践中加以应用,效果良好。只有充分理解和掌握了二进制数据的表示和特点,才能为以后的学习奠定良好的基础。
参考文献
[1]杨晓东 等 主编 微型计算机原理与接口技术.机械工业出版社,2007年版。
[2]冯文旭 等 主编 单片机原理及应用.机械工业出版社,2008年版。
[3]戴梅萼 主编 微型计算机技术及应用.清华大学出版社,2006年版。
[4]陈建铎 等 编著 微型计算机原理及应用.人民邮电出版社,2006年版。