首页 理论教育计算机数值型数据的表示和编码

计算机数值型数据的表示和编码

【摘要】:表1-2机器数与真值2.带符号数的编码数在计算机中是以二进制形式表示的。尾数部分给出有效数字的位数,因而决定了浮点数的表示精度。二是要给出阶码,用整数形式表示,阶码指明小数点在数据中的位置,因而决定了浮点数的表示范围。最常用的BCD码称为8421BCD码,8、4、2、1 分别是4位二进制数的位权值。

计算机内部只能采用二进制表示数据,所以必须先解决如何表示与存储这些数据的问题,也就是这些数值型数据需要用二进制编码才能存储到计算机中并进行处理。

1.机器数与真值

数值型数据是有正负之分的,用“+”“-”号加绝对值来表示数值的大小,用这种形式表示的数值在计算机中称为真值,符号数码化后,即二进制数的最高位用“0”表示正号,用“1”表示负号,用这种形式表示的数值在计算机中称为机器数。假设计算机的字长为8,表1-2所示为机器数与真值之间的对应关系。

表1-2 机器数与真值

2.带符号数的编码

数在计算机中是以二进制形式表示的。数分为有符号数和无符号数。原码、反码、补码都是有符号定点数的表示方法。一个有符号定点数的最高位为符号位,0是正,1是负。

(1)原码。

所谓原码就是前面所介绍的二进制机器数表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。在数值前直接加一符号位的表示法。

例1-12 求+7与-7的原码。

[+7]= 0 0000111 B

[-7]= 1 0000111 B

注意 数0的原码有两种形式:[+0]=00000000B,[-0]=10000000B,且8位二进制原码的表示范围:-127~+127。

(2)反码。

反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

例1-13 求+7与-7的反码。

[+7]= 0 0000111 B

[-7]= 1 1111000 B

注意 数0的反码也有两种形式,即[+0]=00000000B,[-0]=11111111B,且8位二进制反码的表示范围为-127~+127。

(3)补码。

补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

例1-14 求+7与-7的补码。

[+7]= 0 0000111 B(www.chuimin.cn)

[-7]= 1 1111001 B

补码在微型机中是一种重要的编码形式,采用补码后,可以方便地将减法运算转化成加法运算,运算过程得到简化。正数的补码即是它所表示的数的真值,而负数的补码的数值部分却不是它所表示的数的真值。采用补码进行运算,所得结果仍为补码。

注意 数值0的补码只有一个,即 [0]=[+0]=[-0]=00000000B。若字长为8位,则补码所表示的范围为-128~+127,进行补码运算时,应注意所得结果不应超过补码所能表示数的范围。

3.数的定点表示与浮点表示

数值数据多数带有小数,计算机并不用二进制来存储小数点。小数点在计算机中通常有两种表示方法:定点表示法与浮点表示法。

(1)定点表示法。

所谓定点格式,即约定机器中所有数据的小数点位置是固定不变的。定点小数是纯小数,约定的小数点位置在符号位之后、有效数值部分最高位之前,点整数是纯整数,约定的小数点位置在有效数值部分最低位之后。若数据x的形式为:

x=x0· x1x2…xn

其中,x0为符号位,x1~xn是数值的有效部分,也称为尾数,x1为最高有效位,xn为最低有效位,则在计算机中的表示形式如图1-17所示。

图1-17 定点数表示法

(2)浮点表示法。

科学计数法相似,任意一个J进制数N,总可以写成

N = JE×M

式中,M称为数N的尾数,是一个纯小数;E为数N的阶码,是一个整数;J称为比例因子JE的底数。这种表示方法相当于数的小数点位置随比例因子的不同而在一定范围内可以自由浮动,所以称为浮点表示法。

底数是事先约定好的(常取2),在计算机中不出现。在机器中表示一个浮点数时,一是要给出尾数,用定点小数形式表示。尾数部分给出有效数字的位数,因而决定了浮点数的表示精度。二是要给出阶码,用整数形式表示,阶码指明小数点在数据中的位置,因而决定了浮点数的表示范围。浮点数也要有符号位,因此一个机器浮点数应当由阶码和尾数及其符号位组成,如图1-18所示。

图1-18 浮点整数表示法

其中,ES 表示阶码的符号,占一位,E1~En为阶码值,占n位,尾符是数N的符号,也要占一位。当底数取2时,二进制数N的小数点每右移一位,阶码减小1,相应尾数右移一位;反之,小数点每左移一位,阶码加1,相应尾数左移一位。

4.8421BCD码

在计算机中,数值数据的编码除了以上几种表示方法外,还常用BCD(Binarycoded Decimal)。这种方法是用4位二进制码的组合代表十进制数的0、1、2、3、4、5、6、7、8、9 十个数符。最常用的BCD码称为8421BCD码,8、4、2、1 分别是4位二进制数的位权值。表1-3为十进制数0~15和8421BCD编码的对应关系。

表1-3 十进制数和8421BCD编码的对应表