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