网站大量收购独家精品文档,联系QQ:2885784924

机器数快速转换算法探究.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
机器数快速转换算法探究

机器数快速转换算法探究摘要:机器数是计算机相关原理如运算器设计等的基础,也是计算机数值运算的前提与基础。该文给出了一种更简便的机器数转换算法,并给出了实现该算法的C++源代码。 关键词:机器数;算法;机器字长;溢出;C++源代码 中图分类号:TP312文献标识码:A文章编号:1009-3044(2012)16-3872-03 Machine Number Fast Conversion Algorithm WANG De-chao (College of Fundation Education,Sichuan Normal University, Chengdu 610066, China) Abstract: Number of machines is the basis for computer-related design principles such as operations, is also a prerequisite and basis for nu merical computing. This article gives a simpler machine conversion algorithm, and C++ source code that implements the algorithms are given. Key words: machine number; algorithm; machine length; overflow; C++ source code 1真值数与机器数 计算机中常采用数的符号和数值一起编码的方法来表示数据,即二进制数真值用机器数来表示,机器数通常有原码、反码和补码三种表示方法。在计算机的运算过程中,根据不同的运算运用不同的机器数,以简化计算机的运算过程[1]。如乘法和除法用原码参与运算比较方便,符号位通过异或运算即得结果的符号位;而加法与减法运算用补码参与运算比较方便,它使符号位不用单独处理,直接与数值位(尾数)一起参与运算。 计算机中表示一个数值型数据应包含三个因素: 1)采用什么进位计数制; 2)如何表示数值符号; 3)如何确定小数点位置。计算机中的数均存放在寄存器中,通常称寄存器的位数为机器字长。所谓无符号数,即没有符号的数,在寄存器中的每一位均用来存放数值,当存放有符号数时,则需要留出字长的最高位位置用于存放数值符号。 机器数是指在计算机内的数据表示形式,一般是采用某种编码形式表示带符号的二进制数。在计算机内,数值的符号位也用二进制数码0和1来表示,0表示正号,1表示负号,且规定字长的最高位作符号位。真值数则是指机器数所对应的带有+或-符号的实际二进制数值。例如+125与-125两个数的二进制真值数分别是+1111101和-1111101,它们的原码机器数分别11111101,即数值的符号位被二进制数字化了。 2原码、反码与补码 数制转换是计算机组成原理相关课程的重要组成部分[1-6]。计算机科学中所采用的数制包括十进制数、二进制数、十六进制数和八进制数等。但计算机中的数均采用二进制数表示,数的正负号也是用二进制表示,这样的数称为机器数。原码、反码和补码是机器数的三种形式。一个正的十进制数的原码、反码和补码为将该十进制数转换成位数为机器字长的二进数本身。一个负的十进制数的补码转换过程:先转换出最高位为1的长度为机器字长的该负数的原码,再求其反码,然后在反码的最低位加1得出补码。这便是传统的三种机器相互转换的方法。该文将给出不用“反码加1”求负数补码的快捷方法。 2.1原码 规则:机器数的最高一位表示符号,“0”表示正号;“1”表示负号,后面各位用数的二进制绝对值表示。若字长为n位,整数真值x=±xn-1xn-2…x2x1的原码一般可表示为0xn-1xn-2…x2x1(正数)与1xn-1xn-2…x2x1(负数)。如真值x=+0101010与y=-0101010的原码分别是x原y原 2.2反码 反码通常作为原码与补码相互转换的中间过渡。反码的简便转换方法是:当为正数时,其反码和原码的形式相同;当为负数时,反码为保持原码的符号位不变,原码的数值部分各位按位变反。如真值x=+ 0101010与y=-0101010的反码分别是x反y 反 2.3补码 计算机中通过补码可将减法转换为加法实现,这部分由计算机硬件来完成。CPU中同时有加法指令和减法指令,采用补码的目的是可以运算或存储有符号数。补码是计算机专业课中的重要知识点,如《计算机组成原理》与《C语言》等[3,6]课程需要补码知识。

文档评论(0)

linsspace + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档