数值编码
各种数值数据在计算机中表示的形式称为机器数。机器数对应的实际数值称为数的真值。
定点数和浮点数区别
定点数
小数点的位置固定不变
浮点数
F = M * 2E
M:尾数
E:阶码
浮点数表示一般包括:数符,阶符,阶码数值部分,尾数数值部分
原码
定义
(1)整数
\[\left[ X \right]{\rm{ = }}\left\{ {\begin{array}{*{20}{c}}
{X{\rm{ }}({\rm{0}} \le X{\rm{ < }}{{\rm{2}}^{n - 1}}{\rm{) }}}\\
{{2^{n - 1}} - X{\rm{ }}({\rm{ - }}{{\rm{2}}^{n - 1}}{\rm{ < }}X \le 0){\rm{ }}}
\end{array}} \right.\]
其实就是最高位表示符合,其它位表示绝对值
(2)浮点数
\[\left[ X \right]{\rm{ = }}\left\{ {\begin{array}{*{20}{c}}
{X({\rm{0}} \le X < {\rm{1}})}\\
{1 - X( - {\rm{1}} < X \le 0)}
\end{array}} \right.\]
优点
简单直观
缺点
(1)加减运算麻烦
(2)0表示不唯一
补码
定义
(1)整数
\[\left[ X \right]{\rm{ = }}\left\{ {\begin{array}{*{20}{c}}
{X{\rm{ }}({\rm{0}} \le X{\rm{ < }}{{\rm{2}}^{n - 1}}{\rm{) }}}\\
{{2^n} + X{\rm{ }}( - {2^{n - 1}}{\rm{ }} \le X < 0){\rm{ }}}
\end{array}(\bmod {2^n})} \right.\]
补码的负数是该值的正数表示按位取反加1
(2)浮点数
\[\left[ X \right]{\rm{ = }}\left\{ {\begin{array}{*{20}{c}}
{X{\rm{ }}({\rm{0}} \le X{\rm{ < 1) }}}\\
{2 + X{\rm{ }}( - 1{\rm{ }} \le X < 0){\rm{ }}}
\end{array}(\bmod 2)} \right.\]
优点
(1)0的表示唯一
(2)大多数 处理器都设置了求补运算
(3)加减法简单:[X+Y]补 = [X]补 + [Y]补
计算机中一般采用补码表示
反码
定义
(1)整数
\[\left[ X \right]{\rm{ = }}\left\{ {\begin{array}{*{20}{c}}
{X{\rm{ }}({\rm{0}} \le X{\rm{ < }}{{\rm{2}}^{n - 1}}{\rm{) }}}\\
{({2^n} - 1) + X{\rm{ }}( - {2^{n - 1}}{\rm{ < }}X \le 0){\rm{ }}}
\end{array}(\bmod ({2^n} - 1))} \right.\]
负数补码是正数的按位取反
(2)小数
\[\left[ X \right]{\rm{ = }}\left\{ {\begin{array}{*{20}{c}}
{X{\rm{ }}({\rm{0}} \le X{\rm{ < }}1{\rm{) }}}\\
{(2 - {2^{ - n + 1}}) + X{\rm{ }}( - 1{\rm{ < }}X \le 0){\rm{ }}}
\end{array}(\bmod (2 - {2^{ - n + 1}}))} \right.\]
特点
0表示不唯一