- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
原码反码和补码教学探讨
原码反码和补码教学探讨
摘要:有符号数字的存储包括原码、反码和补码(国内教材采用术语)3种表示,是许多计算机专业基础课程的重要教学内容,然而国内外教材和网络百科中的相关内容存在很多不一致的地方,可能会导致教学中的困惑和误区。文章将分别从讲解思路、术语定义和数学本质3方面进行对比分析并提出一些可能的改进建议,包括规范术语,注重计算机基本操作和相关数学概念,强调不同表示的产生原因、关系和符号位差异等。
关键词:原码;反码;补码
0.引言
数字存储与数字计算紧密相连,是计算机专业的基础课程,如计算机导论、计算机组成原理、汇编语言等,是要求学生理解和掌握的重要知识点。有符号数存储涉及数字的符号,包括原码、反码和补码,又是其中的教学难点,然而众多国内教材包括电子工业出版社的《8086/8088宏汇编语言程序设计教程》(1998年出版)、高等教育出版社的《数字电子技术基础》(1998年出版,2001年重印)、电子工业出版社的《计算机组成原理》(2004年出版)和清华大学出版社的《汇编语言程序设计》(2009年出版)以及网络百科包括百度百科和360百科(更新截止2014年11月18日),国外教材包括ComputerOrganization and Embedded System(2011年出版)和Foundations of Computer Science(2007年出版)以及网络百科Wikipedia(更新截止2014年11月18日),对于有符号数存储的讲解内容存在众多不一致的地方,教师需要进一步分析与探讨,以避免在教学过程中令学生产生误解。
1、讲解思路
1.1产生原因
有符号数字的存储有3种表示:原码、反码和补码。现在计算机大多选用补码,早期部分计算机选用原码或反码,如IBM 709x系列采用原码,PDP-1、CDC 160系列、CDC 6000系列、UNIVAC 1100系列和LINC计算机采用反码。在教学过程中,学生通常会产生两点疑惑:①为什么有符号数字有3种表示?②为什么计算机不选用相对直观的原码而选用晦涩难懂的补码?国外网络百科通过例子详细说明了原码和反码在计算过程中可能出现的问题。具体而言,原码的符号位不能参与计算,反码的计算需要处理进位或借位,同时存在―0,只有补码的计算能够保持与无符号二进制数的计算一致。国内教材和网络百科往往从以下3方面描述:①数学表达式;②求解方法;③硬件设计的难易程度。相比较而言,国外网络百科更有利于把握计算的本质,有助于学生理解不同表示产生的原因。
1.2基本方法
国外教材通常采用方法→表示的讲解方式,即先介绍二进制中两种补的方法(methods ofcomplement):众一的补(ones complement)和二的补(twos complement)。补的方法是一种只用正数的加法计算从一个数中减去另一个数的技术。 一个二进制数的众一的补被定义为这个数的所有位取反(0变l,1变0)。一个n位二进制数的二的补被定义为2n的补,等同于众一的补(取反运算)加1。然后,介绍两种有符号数的表示:众一的补表示(英文:onescomplement representation,中文:反码)和二的补表示(英文:twos complement representation,中文:补码)。众一的补和二的补系统/计算(ones complement system/arithmetic and twoscomplement system/arithmetic)中的负数,分别用它们对应的正数的众一的补和二的补表示。
部分国内教材则采用表示→运算的讲解方式,即先定义有符号二进制数的表示,即原码、反码和补码,再定义一种补码的运算――求补运算。具体而言,求补运算被定义为一个已为补码表示的数,连同符号位一起按位求反后,在最低位加补,这种定义容易混淆概念:①如果它对应二的补,那么可以理解为一个数学操作符,输入不仅仅限定为已为补码表示的数,例如,一个负数对应正数的二进制表示;②如果这种定义对应二的补算术(twos complement arithmetic),那么指代一个系统,这个系统中一些基本的算术操作如加、减和乘就与尢符号二进制数的相同。此外,还可能会产生以下一些问题:当输入一个二进制数时,计算机将如何鉴别这个数已为补码表示(注意并非所有计算机都采用补码)?如果不能鉴别,那么这种运算的意义何在?又将如何定义?
1.3求解过程
在求解有符号数表示时,国外教材出发点是数本身,给定一个有符号数χ,各种表示求解过程如下:
符号和数量表示(英文:sign and magnituderepresentation,中文:原码):最高位为符号位,0表示正数,1
原创力文档


文档评论(0)