无符号数和有符号数
(一)无符号数
即没有符号的数,机器字长相同时,无符号数和有符号数的范围是不同的。以机器字长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的数为规格化数。
…