STC单片机原理及应用:从器件、汇编、C到操作系统的分析和设计(立体化教程)(第2版)
上QQ阅读APP看书,第一时间看更新

4.2 正数表示方法

本节介绍正数的表示方法,内容包括正整数的表示和正小数的表示。

4.2.1 正整数的表示

下面更进一步地说明不同进制数的表示方法:

(1)对于一个四位十进制数7531,用10的幂次方表示为

7×103+5×102+3×101+1×100

(2)对于一个五位二进制数10101,用2的幂次方表示为

1×24+0×23+1×22+0×21+1×20

该二进制数等价于十进制数21。

(3)对于一个三位八进制数327,用8的幂次方表示为

3×82+2×81+7×80

该八进制数等价于十进制数215。

(4)对于一个四位十六进制数13AF,用16的幂次方表示为

1×163+3×162+A×161+F×160

注意:A等效于十进制数10,F等效于十进制数15。

该十六进制数等价于十进制数5039。

推广总结:

(1)对于一个N位的二进制数,最低位记为第0位,最高位记为第N-1位。其计算公式为

Y=SN-1·2N-1+SN-2·2N-2+…+S1·21+S0·20

其中,Si为第i位二进制数的值,取值为0或者1;2i为第i位二进制数的权值;Y为等效的十进制数。

(2)对于一个N位的八进制数,最低位记为第0位,最高位记为第N-1位。其计算公式为

Y=SN-1·8N-1+SN-2·8N-2+…+S1·81+S0·80

其中,Si为第i位八进制数的值,取值范围为0~7;8i为第i位八进制数的权值;Y为等效的十进制数。

(3)对于一个N位的十六进制数,最低位为第0位,最高位为第N-1位。其计算公式为

Y=SN-1·16N-1+SN-2·16N-2+…+S1·161+S0·160

其中,Si为第i位十六进制数的值,取值范围为0~9、A~F;16i为第i位十六进制数的权值;Y为等效的十进制数。

从上面的表示方法可以得到一个重要的结论,即不同进制的数就是数字和对应的权值相乘,然后进行相加所得到的最终结果。

4.2.2 正小数的表示

前面介绍了使用其他进制表示十进制正整数的方法。那么,对于一个十进制的正小数又该如何表示呢?

(1)对于一个3位十进制小数0.714,用10的幂次方表示为

7×10-1+1×10-2+4×10-3

(2)对于一个5位二进制小数0.10101,用2的幂次方表示为

1×2-1+0×2-2+1×2-3+0×2-4+1×2-5

其等效于十进制小数0.65625。

推广总结:

对于一个N位的二进制小数,最高位为第0位,最低位为第N-1位。其计算公式为

Y=S0·2-1+S1·2-2+S2·2-3+…+SN-1·2-N

其中,Si为第i位二进制小数的值,取值范围为0或者1;2-(i+1)为第i位二进制小数的权值;Y为等效的十进制小数。

从上面的计算过程可以看出,二进制整数和二进制小数的区别在于,二进制整数的权值为整数,二进制小数的权值为小数。

注意:对于一个既包含整数部分,又包含小数部分的二进制正数来说,就是将整数部分和小数部分分别用整数二进制计算公式和小数二进制计算公式表示。