【计组期末复习】第二章运算方法与运算器7

第二章 运算方法与运算器

数的机器码表示

(一)符号数、机器数、真值、无符号数

1.符号数
数值数据加上其正、负的含义,即实际应用中真正的数值型数据。
2.机器数
符号数的符号位数值化。
3.真值
•带符号的机器数对应的数值称为机器数的真值。
•例:1101若为原码机器数,则其真值为-5(-101),后者往往也叫符号数。
4.无符号数
逻辑数据;
地址。

(二)定点数与浮点数

1.定点数

•定点、浮点的“点”都指二进制数中的小数点。
•定点指小数点位置固定。

(3)定点数常见的机器码编码形式 --原码、反码、补码和移码。

1.原码、反码、补码的表示数范围
--设定点数N的字长为n+1位(1个符号位,n个数值位),则当N为定点小数和定点整数时的表数范围分别是:

2.例题:
设机器数字长为8位(其中1位符号位),对于整数,当其分别代表无符号数、原码、补码和反码时,对应的真值范围各为多少?

3.反码和补码的符号位可以与数值位共同参与运算而原码的符号位和数值位必须分开进行处理。
4.例题:
写出下列各数的原码、反码、补码表示(用8位二进制数)。其中MSB是最高位(又是符号位),LSB是最低位。如果是小数,小数点在MSB之后;如果是整数,小数点在LSB之后。
(1)–35/64 (2)23/128 (3) –127 (4)用小数表示– 1 (5)用整数表示– 1
解答:
(1)-35/64写成二进制即 -100011/1000000 =-0.100011 = -0.1000110
原码:1.1000110
反码:1.0111001
补码:1.0111010
(4)用小数表示-1
原码与反码的小数表示中没有-1;补码表示的小数-1为1.0000000
(5)用整数表示-1
-1=-0000001
原码为10000001;
反码为11111110;
补码为11111111。
5.了解B、Q、H、BCD的含义
B:2进制; Q:八进制(同O); H:16进制; BCD:8421码

2.浮点数

(1)浮点数的一般形式: N=\(R^E\) × M
eg. N= \(2^{-3}\) ×(-0.001011)
= \(2^{-2}\) ×(-0.0001011)
= \(2^{-4}\) ×(-0.01011)
=……
其中,N为浮点数; R为基数,2的整数次幂(常取2),R是隐含表示的;M叫做尾数,为定点小数;E叫做阶,为定点整数;


(2)浮点数的规格化
若上述浮点数N的尾数M在如下范围内1/R≤|M|< 1 (1/2≤|M|< 1 则 N 叫做规格化的浮点数,一般机器中以此形式存储、运算。

(3)浮点表示的两个主要优点
•表示数的范围大于同机器的定点数;
•运算过程中随时对中间结果作规格化,不易丢失有效数位,故提高了运算精度。
(4)浮点数的表示范围

(5)浮点数的阶常用的编码方法 --移码
•考虑对两个浮点数进行加减运算的情况:
N1=\(2^{E1}\)×M1
N2=\(2^{E2}\)×M2
•E1和E2化为无符号数会给阶的比较带来方便;
•为此,现在多数计算机中浮点数的阶码常采用移码表示。


(6)IEEE754标准

  • 一般不明确规定格式时,一个机器浮点数可以表示为:
  • 标准中包括IEEE754单精度数(短实数即32位浮点数)格式和IEEE754双精度数(长实数即64位浮点数)格式等。
  • IEEE754单精度数(短实数)即32位浮点数格式
    ①符号位S占1位,0表示正数,1表示负数;
    ②尾数中设置一个缺省的1,即1.M中的1.是隐含表示的,而M可以是任意的23位二进制数值;
    ③定义了一些特殊数据格式以处理上、下溢等异常情况;
    ④正常IEEE754单精度数阶码取值即E的范围为1~254,与一般移码(8位应为0 ~255)略有不同。
  • IEEE754双精度数(长实数)即64位浮点数格式:
    ①符号位S占1位,0表示正数,1表示负数;
    ②尾数中设置一个缺省的1,即1.M中的1.是隐含表示的,而M可以是任意的52位二进制数值;
    ③定义了一些特殊数据格式以处理上、下溢等异常情况;
    ④正常IEEE754双精度数阶码取值即E的范围为1~2046,与一般移码(11位应为0 ~2047)略有不同。
  • 练习:
    1.
    2.
    3.有一个字长为32位的浮点数,阶码10位,用移码表示;尾数22位,用补码表示;基数为2。请写出:(1)最大数的二进制表示;(2)最小数的二进制表示;(3)规格化数所能表示的数的范围;(4)最接近于零的正规格化数与负规格化数。
    浮点数N=\(2^E\)×M的表示范围实际是由定点小数M和定点整数E的表示范围组合而来的;
    解答:
    设浮点数格式为X=\(2^E\)•S,阶码为10位移码,则阶码的取值范围为-512~+511;尾数是22位的补码(其中含符号位1位),则尾数最大正数值为 Smax=1-\(2^{-21}\);尾数最小正数值为 Smin=\(2^{-21}\)。尾数最大负值为-\(2^{-21}\);尾数最小负值为-1。

    4.

校验码

1.奇偶校验码
(1)奇偶校验位(parity check bit/oddeven check bit)
(2)奇数奇偶校验(奇校验)
有用数据位加上校验位后共有奇数个1;校验时若发现1的个数变为偶数个,则发生了奇偶错。
(3)偶数奇偶校验(偶校验)
类似(2)。具体使用时可选其中之一。
(4)缺点:只能发现奇数个位出错的情况。
2.交叉校验
大量字节传送时(如主机与外设之间)为每个字节设一个校验位,叫横向校验;全部字节的同一位也设一个校验位,叫纵向校验。如此双向同时校验即交叉校验。
例题:已知下面数据块约定横向校验、纵向校验均为奇校验,请指出至少有多少位出错。

3.CRC码(Cyclic Redundancy Code)
4.海明校验码(Hamming Code):大中型机用。

posted @ 2022-11-19 20:43  Mothlove  阅读(286)  评论(0)    收藏  举报