微机原理第二章总结
1.无符号的表示方法:
十进制:用D表示十进制数,任意一个十进制可以表示为N D =Σ(i=-m 到 n-1) D i 10 i
例:138.5=1×10²+3×10¹+8×10º×+5×10 -1
二进制:用H表示十进制数,任意一个二进制可以表示为N B = Σ(i=-m 到 n-1) H i 2 i
例如:1101.11B=1×2³+1×2²+0×2¹+1×2º+1×2 -1 +1×2 -2 =13.75(D)
十六进制:用H表示十六进制数,任意一个十六进制进制可以表示为N H =Σ(i=-m 到 n-1)H i 16 i
A ~ F代表(10~15)
例如:
0E5AD.BFH=0×16 4 +14×16³+5×16 2 +10×16¹+13×16º+11×16 -1 +15×16 -2 =58797.7461(D)
2.数制间的互相转换
(1)将X进制转换成十进制,按位权展开,即就是上面各个例题。
(2)将十进制转换成X进制,整数部分:除位权取余,小数部分:乘位权取整。
例如:十进制转换成二进制:13.75(D)=1101.11=1×2³+1×2²+0×2¹+1×2º+1×2 -1 +1×2 -2
3.二进制数的运算
1.机器数与真值:
对于一个字节型二进制来说D 7 位为符号位,D 6 ~D 0 为数值位。符号位“0”代表正,“1”代表负。
通常把一个数及其符号位在机器中的一组二进制数表示形式称为“机器数”。机器数所表示的值成为该机器数的“真值”。
机器数有不同的表示方法,常用的有原码表示法,反码表示法和补码表示法。
2.机器数的表示方法:
负数 的反码是在原码的基础上保留符号位,数值位按位取反。
负数 的补码是在原码的基础上保留符号位,数值位按位取反,末位加1。或者反码的基础上加1
下表为8位2进制数的原码、反码、补码
3.真值与及其数的转换:
1.原码转为真值:按位权展开
2.反码转为真值:反码取反得到原码,再按位权展开
3.补码转为真值:补码求补得到原码,再按位权展开
4.补码的加减运算:
[X] 补 +[Y] 补 =[X+Y] 补
加法举例:
减法举例:
5.溢出及判断方法:
1.进位溢出
所谓进位,是指运算结果的最高位向更高位的进位,用来判断无符号数运算结果是否超出了计算机所能表示的最大无符号数的范围。
溢出是指带符号数的补码运年溢出,用来判断带符号数补码运算结果是否超出了补码所能表示的范围。例如,字长为n位的带符号数,它能表示的补码范围为-2 n-1 ~ +2 n-1 -1如果运算结果超出此范围,就叫补码溢出,简称溢出。
2.溢出的判断方法
判断溢出的方法很多,常见的有:①通过参加运算的两个数的符号及运算结果的符号进行判断。②单符号位法。 该方法通过符号位和数值部分最高位的进位状态来判断结果是否溢出。③双符号位法,又称为变形补码法。它是通过运算结果的两个符号位的状态来判断结果是否溢出。
上述三种方法中,第①种方法仅适用于手工运算时对结果是否溢出的判断,其他两种方法在计算机中都有使用。下面通过具体例子对第②种方法做简要介绍。
若符号位进位状态用CF来表示,当符号位向前有进位时,CF=1, 否则,CF=0;数值部分最高位的进位状态用DF来表示, 当该位向前有进位时,DF=1, 否则,DF=0。 单符号位法就是通过该两位进位状态的异或结果来判断是否溢出的。