APP下载

机器数的快速转换算法研究

2012-04-29王德超

电脑知识与技术 2012年16期

王德超

摘要:机器数是计算机相关原理如运算器设计等的基础,也是计算机数值运算的前提与基础。该文给出了一种更简便的机器数转换算法,并给出了实现该算法的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表示负号,且规定字长的最高位作符号位。真值数则是指机器数所对应的带有+或-符号的实际二进制数值。……

登录APP查看全文