计算机内部的信息分为:控制信息 和 数据信息。
- 控制信息:指令
- 数据信息:
- 数值数据:有确定的值,可表示大小(进位计数制、小数点、符号表示)。
- 非数值数据:无确定的值,分为逻辑数据、字符数据。
数值数据
数制的转换
R进制转十进制
将各位数字与它的权相乘,其积相加,和数就是十进制数。
\[\sum_{i=n-1}^{-m} N_i R^i\]十进制转R进制
- 整数部分的转换(除基取余法)
- 小数部分的转换(乘基取整法)
二、八、十六进制转换
- 二进制转八、十六:以小数点为中心,向左右两边延伸。八进制按三位一组划分,十六进制按四位一组划分。
- 八、十六进制转换为二进制:将每一位八(或十六)进制数用三位(或四位)二进制数代替即可。
小数点表示
- 定点表示法:小数点的位置固定不变
- 定点小数:小数点固定在有效数字的最左边,该数为一纯小数。
- 定点整数:小数点固定在有效数字的最右边,该数为整数。
- 浮点表示法:见下面的详细讨论
符号表示
- 原码:最高位表示符号(0 为正,1 为负),其余位不变
- 反码:符号位同原码;尾数部分正数不变,负数的尾数为原码的取反
- 补码:$[x]_补=(M+x)\text{mod}M$($M$ 为最大能表示的数),正数同原码,负数则在反码的基础上加 1
- 移码:符号位与补码相反,尾数部分与补码相同,注意 0 的编码是
1000...
- 浮点数:见下面的详细讨论
浮点数
浮点数可看作科学计数法,包括 $E$ 位阶码(即指数部分)和 $M$ 位尾数(即小数部分) (我们用 $E,M$ 表示包括符号位,用 $e,m$ 表示不包括符号位),阶码默认都是以 $2$ 为底数。
- 补码表示的浮点数:阶码和尾数都是补码,那么,其表示的范围为:
- 最大正数:$(1-2^{-m})\times 2^{2^e-1}$
- 最小正数:$2^{-(m-1)}\times 2^{-(2^e-1)} $
- 0
- 最大负数:$-2^{-m} \times 2^{-(2^e-1)}$
- 最小负数:$(-1) \times 2^{2^e-1}$