微机原理复习概要
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理
1、原码、补码表示范围
举例:某机字长8位,采用定点表示法,可表示的纯小数或整数的表示范围是多少?
若采用浮点表示法,
阶码3位,尾数5位,表示的数值范围是多少?
定点小数:-0.1111111 ~ +0.1111111,即-127/128~+127/128
定点整数:-1111111.~+1111111.,即-127~+127
定点小数的表示范围:
-.1111....1 ≤X ≤+.1111 (1)
即:-(1-2-n) ≤X≤+(1-2-n)
定点整数的表示范围:
-1111....1 ≤X ≤+1111. (1)
即-(2n-1) ≤X ≤+ (2n-1)
机器字长p+m+2位,其中尾数占m+1位,阶码占p+1位
浮点数所能表示的数值范围应分成正、负数。
分别表示如下:
正数:+2-m•2-(2p-1 )≤X≤+(1-2-m) •2+(2p- 1)
负数:-(1-2-m) •2+(2p- 1)≤X≤-2-m•2-(2p-1 )
某机字长32位,浮点表示时,阶码占8位,尾数占24位,各包含一个符号位。问:
(1)带符号定点小数的最大表示范围是多少?
(2)带符号定点整数的最大表示范围是多少?
(3)浮点表示时,最大的正数是多少?
(4)浮点表示时,最大的负数是多少?
(5)浮点表示时,最小的规格化正数是多少?
答案:
(1) -1~+(1-2-31)
(2) -2+31~+ (2+31-1)
(3)(1-2-23)* 2+127
(4)- 2-23* 2-128
(5) +2-1*2-128
③注意事项
浮点数基值的选择rm=2、8、16
尾数的基值,增大数的表示范围,不降低数的表示精度
浮点数的规格化
尾数≥1/rm,即尾数小数点后的第一位数是非0
2、原码表示法
将带符号数的符号位数值化(习惯上用“0”表示“+”,用“1”表示“-”),数码位保持不变,即原码表示法。
例如:
X=+0.101101 Y=-0.010110
则[X]原=0.101101 [Y]原=1.010110
3、补码表示法
举例:
若X=+0.10110010
根据定义:[X]补=0.10110010
若X=-0.10110010
根据定义:[X]补=2+(-0.10110010)
=10.00000000-0.10110010
=1.01001110
求补码的简易方法:
正数的补码同原码;
负数的补码,保持原码符号位不变(“1”),数码位各位变反,末位加1。
无论正数还是负数,都必须先求原码。
③已知[X]补,求[X]原方法
对于正数:[X]原=[X] 补
对于负数:[X]原=[[X]补]补
例:若[X]补= 1.10110001
[X]原=1.01001111
④已知[X]补,求[-X]补的方法
将[X] 补连同符号位一起,各位变反,末位加1;
例:若[X]补= 1.10110001
[-X]补=0.01001111
⑤已知[X]补,求[X/2]补、[X/4]补的方法
将[X] 补连同符号位一起右移1位,左边补1位与符号位相同的数码,则得到[X/2]补;同理,若右移2位,则得到[X/4]补;
例:若[X]补= 1.01101111
[X/2]补=1.10110111
[X/4]补=1.11011011
⑥已知[X]补,求[2X]补、[4X]补的方法
将[X] 补左移1位,得到[2X]补,右边补“0”;若左移2位,则得到[4X]补。
例:若[X]补= 0.00101101
[2X]补=0.01011010
[4X]补=0.10110100
4、反码表示法
求负数的反码也有简便方法:即将原码的符号位保持不变,数码位各位变反。
举例:
若X=-0.11011001
[X]原=1.11011001
[X]反=1.00100110
5、浮点数的原码、补码和反码表示法
浮点数由两个定点数组成,阶码是定点整数,尾数是定点小数,其三种编码的具体格式以下面的例子说明。
例1:若X=+0.11011001×2-110,该浮点数在机内采用如下格式:
X=-110,+0.11011001
[X]原=1110,0.11011001
[X]反=1001,0.11011001
[X]补=1010,0.11011001
例2:若X=-0.10010111×2+110,该浮点数在机内采用如下格式:
X=+110,-0.10010111
[X]原=0110,1.10010111
[X]反=0110,1.01101000
[X]补=0110,1.01101001
6、常用的错误检测码有两类:检错码和纠错码。
奇偶校验码-常用的检错码
海明码-常用的纠错码
数据校验码实现的原理就是在所传输的信息中加入一些冗余码,使合法数据编码出现某些错误时,就成为非法编码。这样,就可以通过检测编码的合法性来达到发现错误的目的。
数据校验位的多少与码距紧密相关。码距的概念是什么呢?即根据任意两个合法码之间至少有几个二进制位不相同而确定的。仅有一位不同,称其码距为1。
一般来说,码距越大,纠错能力越强,但数据冗余也越大,即编码效率低了。所以,选择码距要取决于特定系统的参数。数字系统的设计者必须考虑信息发生差错的概率和该系统能容许的最小差错率等因素。
利用校验码实现对数据信息的校验,目的是提高计算机的可靠性。检错与纠错的方法很多,这里只介绍常用的三种数据校验方法:奇偶校验、海明校验和循环冗余校验(CRC)。
奇偶校验码是一种开销最小,能发现数据代码中一位出错情况的编码,常用于存储器读写检查,或ASCII字符传送过程中的检查。它的实现原理是使码距由1增加到2。
构成规则:奇偶校验通常用来检验单个字符的错误。即发送端在每个字符的最高位之后附加一位奇偶校验位。这个校验位可为“1”或“0”,以保证整个字符中“1”的个数是奇数(称奇校验)或偶数(称偶校验)。
奇偶校验只能发现一位错或奇数个位错,但不能确定是那一位错,也不能发现偶数个错,更无法识别错误信息的位置。考虑到一位出错的几率比多位出错的几率高得多,该方案还是有很好的使用价值。
纠错码(码距为3)
大、中型计算机在存储器校验时,主要采用海明校验。海明校验是由R.Hamming于1950年提出的,是目前仍广泛被采用的一种很有效的校验方法。
海明校验实现原理
海明校验码以奇偶校验为基础,但校验位不是一位,而是多位。它实质上就是一种多重奇偶校验码。
它的实现原理是:在数据中加入几个校验位,并把数据的每一个二进制位分配在几个奇偶校验组中,当某一位出错后,就会引起有关的几个校验组的值发生变化,这不但可以发现出错,还能指出是哪一位出错,为自动纠错提供了依据。
7、补码加减法运算方法
对于补码加减法运算需要证明如下公式:
[X+Y]补=[X]补+[Y]补
[X-Y]补=[X]补+[-Y]补
例1:已知:X=-0.0625,Y=-0.75。求:X+Y,X-Y
解:X=-0.0001 Y=-0.1100
[X]原=1.0001 [Y]原=1.1100
[X]补=1.1111 [Y]补=1.0100
[-Y]补=0.1100
[X]补=1.1111 [X]补=1.1111
+ [Y]补=1.0100 + [-Y]补=0.1100
---------------------- -----------------------