计算机组成与体系结构(6分)
一.数据的表示
1.进制转换
-
R进制转10进制
使用按权展开法,其具体操作方式为:将R进制数的每一位数值用Rk形式表示, 即幂的底数是R,指数为k,k与该位和小数点之间的距离有关。 当该位位于小数点 左边,k值是该位和小数点之间数码的个数,而当该位位于小数 点右边,k值是负 值, 其绝对值是该位和小数点之间数码的个数加1。
-
10进制转R进制
使用短除法
-
二进制转八进制与十六进制
-
二进制转八进制(1->3)
从右至左每三位为一段,最高段不足三个,高位补0即可,依次使用按权展开法,将二进制转为八进制。 10000110->216
-
二进制转十六进制(1->4)
从右至左每四位为一段,最高段不足四个,高位补0即可,依次使用按权展开法,将二进制转为十六进制。 10001110->8E
-
2.原码补码反码移码
-
原码:数值转为二进制的表现形式,高位不足8位就补0,若是正数,最高位是0,若是负数,最高位是1.
原码不可以直接在机器里做直接运算 若使用原码直接进行运算,则会出现以下情况: 0000 0001 + 1000 0001 = 1000 0010 +1 + (-1) = (-1)
-
反码:正数与原码一致,负数的反码是 符号位不变,其余位按位取反。
正数-原码:0000 0001 反码:0000 0001 负数-原码:1000 0001 反码:1111 1110 (负数符号位不变,其余位按位取反)
-
补码:正数的补码与原码一致,负数的补码是反码+1。
正数-原码:0000 0001 补码:0000 0001 负数-原码:1000 0001 反码:1111 1110 补码:1111 1111 (补码=反码+1)
-
移码:在特定场合使用,用来做浮点运算的阶码,是在补码的基础上,首位取反(无论正负)
正数-负数-补码:0000 0001 移码:1000 0001
3.数值表示范围
例子:若n=8
原码代入上述公式得:-127 ~ +127
反码代入上述公式得:-127 ~ +127
补码代入上述公式得:-128 ~ +127
(补码表示的取值范围更大一些,原因是因为原码与反码的+0与-0是两种不同的编码,但是补码的+0与-1是0000 0000,少占用了一个编码位)
4.浮点数运算
- 浮点数:称为科学记数法的表示方式
科学记数法:
1000 -> 1.0 * 10的三次方
119 -> 1.19 * 10的二次方 1.19称为尾数(M),10为基数(R),2次方为指数(e)