首页 理论教育计算机内部的二进制数表示方法

计算机内部的二进制数表示方法

【摘要】:实际使用的二进制数可分为二进制整数和二进制实数两种,在计算机内部,分别用定点数和浮点数表示二进制整数和二进制实数。在计算机内部具体表示一个浮点数时,必须指定该浮点数的小数点位置,通常是把所有尾数都看成小数。图2-4 浮点数的格式根据图2-4 的浮点数格式,二进制数﹣0.1001×210在计算机中的浮点数形式就是01011001。目前使用的计算机中表示浮点数的编码长度大都是32位或64位。

实际使用的二进制数可分为二进制整数和二进制实数两种,在计算机内部,分别用定点数和浮点数表示二进制整数和二进制实数。

1.定点数

定点数是指小数点的位置固定不变。在计算机中,通常用定点数表示二进制整数,因此定点数的小数点位置通常固定在数值的最后。一个8位长度的定点数表示格式见图2-2。其中,小数点的位置是隐含表示的,实际表示中不需要专门表示出小数点;符号位为0表示该数为正数,符号位为1表示该数为负数。

图2-2 定点数的格式

这样,二进制整数+1001001 的计算机内部定点数形式就是0 1001001;二进制整数1001001的计算机内部定点数形式就是11001001。

当人在纸上表示数值时,由于纸这种资源非常充分,所以在感觉上,人可以表示任意位数的数值。但是在计算机中,一旦确定了定点数的位数(即长度),它所能表示的数值范围就是固定的。例如,图2-2所示的8位长度的定点数所能表示的绝对值范围为

00000000~11111111

即0~28﹣t。

如果按照符号位为0表示正数,符号位为1表示负数,则图2-2所示的8位长度的定点数所能表示的数值范围为

﹣11111111~+1111111

即﹣27﹣1~+27﹣t。

2.浮点数

任何一个十进制实数都可以有以下不同的表示形式:

﹣34.62=﹣3462×10﹣2=﹣0.3462×102=﹣3.462×101

同样,二进制实数也可以用上述方法表示,例如:(www.chuimin.cn)

﹣10.01=﹣1001×2﹣10=﹣0.1001×210=﹣1.001×21(注意:此式中的指数是二进制)

上述表示法称作记阶表示法。记阶表示法如图2-3所示。在记阶表示法中,数由五部分组成:尾符、尾数、阶符、阶数、基数。

图2-3 记阶表示法

在图2-3中,基数2是固定不变的,当我们已经确定一个实数是二进制实数时,就可以省去该基数。所以,在计算机内部表示二进制实数时,可由尾符、尾数、阶符、阶数四部分组成。由于这样的表示法中小数点的位置是浮动的,所以这样表示的二进制数也称作浮点数。在计算机内部具体表示一个浮点数时,必须指定该浮点数的小数点位置,通常是把所有尾数都看成小数。这样,计算机内部浮点数的表示格式就如图2-4所示。其中,阶符和尾符都是0表示正数,1表示负数。

图2-4 浮点数的格式

根据图2-4 的浮点数格式,二进制数﹣0.1001×210在计算机中的浮点数形式就是01011001。

用记阶表示法表示数时,相同的数可以有许多种不同的形式。例如:

﹣0.1001×210=﹣0.01001×211=﹣0.001001×2100=…

而用浮点方法表示上述不同形式的数时,所需要的编码长度是不相同的。例如,用浮点数表示﹣0.1001×210时,尾数需要4位,阶数需要2位;用浮点数表示﹣0.01001×211时,尾数需要5位,阶数需要2位;用浮点数表示﹣0.001001×2100时,尾数需要6位,阶数需要3位。但是,存储设备的位数是有限的,当超出其位数范围时,多余的部分将丢失。例如,当用尾数位只有4位,阶数位只有2位的浮点数格式表示﹣0.001001×2100时,数据必定出错。为了有效的表示二进制数,通常规定尾数的第一位不能为0,即小数点后的数值不能为0。此种形式的浮点数称为规范化的浮点数。例如,﹣0.1001×210就可以直接表示成规范化的浮点数,其浮点数形式是01011001,而﹣0.01001×211和﹣0.001001×2100就不可以直接表示成规范化的浮点数,需要做适当的转换。

上面举的浮点数例子都是8位编码长度的,其表示的数值范围非常有限。目前使用的计算机中表示浮点数的编码长度大都是32位或64位。

我们知道,两个记阶表示法表示的实数可以进行四则运算。其中加法的运算方法是:首先使两个实数的阶码值相同,然后把两个实数的尾数相加。例如:

0.0041×101+1.14×102=0.00041×102+1.14×102=1.14041×102

两个浮点数的相加也是按照同样的方法完成的。