无符号数和有符号数

(一)无符号数

即没有符号的数,机器字长相同时,无符号数和有符号数的范围是不同的。以机器字长16位为例,无符号数的范围是0~65 535,而有符号数的范围是-32 768 ~ +32 767。

(二)有符号数

在计算机中,符号位用0表示正,1表示负。

1.原码表示法

整数的原码,例如

真值为正:将符号位变为对应的数,并用逗号隔开

x = +1110时,原码为 0,1110

真值为负:将符号位变为对应的数,并用逗号隔开

x = -1110时,原码为 1,1110

小数的原码,例如

真值为正:将符号位置于小数点前

x = +0.1010时,原码为 0.1010

真值为负:将符号位置于小数点前

x = -0.1010时,原码为 1.1010

当x = 0时,原码有两种表现形式

x = +0.0000 原码为0.0000

x = -0.0000 原码为1.0000

2.补码表示法

整数的补码,例如

真值为正,添加符号位,数值位不变

x = +1010 补码为 0,1010

真值为负,添加符号位,数值位按位取反并加1

x = -1010 补码为 1,0110

小数的补码,例如

真值为正,添加符号位于小数点前,数值位不变

x = +0.1010 补码为 0.1010

真值为负,添加符号位于小数点前,数值位按位取反并加1

x = -0.1010 补码为 1.0110

若 x = -1,根据小数补码定义,其补码为1.0000

3.反码表示法

整数的反码,例如

真值为正,添加符号位,数值位不变

x = +1010 补码为 0,1010

真值为负,添加符号位,数值位按位取反

x = -1010 补码为 1,0101

小数的反码,例如

真值为正,添加符号位于小数点前,数值位不变

x = +0.1010 补码为 0.1010

真值为负,添加符号位于小数点前,数值位按位取反

x = -0.1010 补码为 1.0101

4.移码表示法

整数的移码,例如

真值为正,符号位取反,数值位不变

x = +1010 补码为 1,1010

真值为负,符号位取反,数值位按位取反加1

x = -1010 补码为 1,0101

数的定点表示和浮点表示

(一)定点表示

《计算机组成原理》:机器数的表示方法,定点数和浮点数-编程知识网

当小数点位于数符和第一数值位之间时,机器内的数为纯小数;当小数点位于数值位之后,机器内的数为纯整数。

(二)浮点表示

《计算机组成原理》:机器数的表示方法,定点数和浮点数-编程知识网

S 为尾数,j 为阶码,r 为基数(在计算机中可取2,4,8或16)(如果难理解,可以参照以前我们学的科学计数法)。

点数在机器中的形式如下,采用这种数据格式的机器称为浮点机。

《计算机组成原理》:机器数的表示方法,定点数和浮点数-编程知识网

例如浮点数 0.1100101×2^-10,在浮点机中表示为 1,0010 ; 0.11001010000

浮点数的规格化

为了提高浮点数的精度,必须对浮点数进行规格化。规格化时,尾数移位时阶码需要变化,参照科学计数法即可,很好理解。

当基数为2时,尾数最高一位为1的数为规格化数。

当基数为4时,尾数最高两位不全为0的数为规格化数。

当基数为8时,尾数最高三位不全为0的数为规格化数。