数值数据表示的三要素:
1.进位计数制
2.定点、浮点表示
3.如何用二进制编码
即:要确定一个数值数据的值必须先确定这三个要素。
例如机器数 01011001的值是多少?答案是不知道
原码
原码范围:-127~+127
[+127]=01111111
[-127]=11111111
0有两种:
[+0]=00000000
[-0]=10000000
反码
$X原->X反$
正数:X反=X原
负数: X原符号位为1,数值为按位取反
反码范围:-127~+127
[+127]=01111111
[-127]=10000000
0有两种:
[+0]=00000000
[-0]=11111111
补码
$X原->X补$
正数:X补=X原
负数:符号位为1,数值为按位取反,末尾加1
补码范围:**-128~+127**
[+127]=01111111
[-128]=10000000
[-1] = 11111111
0只有一种表示[+0]补=[-0]补=00000000
移码
移码通常表示浮点数的阶码
移码一般为整数,故移码通常只用于表示整数
对定点正数,阶码为n,他的移码是:
$$X_移=2^{n-1}+X_原$$
0的移码和补码一样
$X原->X移$
正数:将原码符号位一起变反
负数:将原码连同符号位一起变反,末尾再加1
$X补->X移$
符号相反,数值位相同
移码的表示范围与补码一致:-128~+127
定点数
数的小数点固定在同一位置不变
1.带符号的定点小数
约定所有数的小数点的位置,固定在符号位之后
符号位+“.”+数值位
字长n+1位时,表示范围是$-(1-2^{-n})=>(1-2^{-n})$
2.带符号的定点整数
小数点固定在最低数值位之后
符号位+数值位+“.”
字长n+1位时,表示范围是$-(1-2^{-n})=>(1-2^{-n})$
3.无符号定点整数
小数点固定在最低数值位之后
符号位+数值位+“.”
字长n+1位时,表示范围是$0=>(2^{n+1}-1)$
分辨率:1