【计算机组成原理-chapter2】数据的表示和运算

文章目录1. 数制与编码1.1 进制转换1.2 BCD码(采用四位二进制数表示十进制数)1.3 字符与字符串1.4 奇偶校验(1位检错,不能纠错)1.5 海明码(2位检错,1位纠错)1.6 循环冗余码CRC(只能检错,纠错1位或多位由多项式决定)2. 数的表示与运算2.1 定点数的表示与运算2.1.1 定点数的表示2.1.1.1 有符号定点数格式2.1.1.2 数值的表示(原码、反码、补码、移码)2.1.2 定点数的运算2.1.2.1 移位运算2.1.2.1.1 算术移位2.1.2.1.2 逻辑移位2.1.2.1.3 循环移位2.1.2.2 加减运算2.1.2.2.1 原码的加减2.1.2.2.2 补码的加减2.1.2.2.3 溢出的判断2.1.2.2.4 空间扩展的填充的数值2.1.2.3 乘法运算2.1.2.3.1 原码的一位乘2.1.2.3.2 补码的一位乘2.1.2.3.3 小结2.1.2.4 除法运算2.1.2.4.1 原码除法2.1.2.4.1.1 余数恢复法2.1.2.4.1.2 加减交替法2.1.2.4.2 补码除法(加减交替法)2.1.2.4.3 小结2.1.3 定点数的强制转换2.1.3 数据的存储与排列2.3 浮点数的表示与运算2.3.1 浮点数的表示2.3.1.1 浮点数格式2.3.1.2 浮点数的规格化2.3.1.3 小结2.3.2 浮点数标准(IEEE754)2.3.3 浮点数的运算2.3.3.1 浮点数的加减运算2.3.3.2 (C语言)浮点数强制类型转换2.3.3.3 小结3. 算术逻辑单元(ALU)3.1 算术逻辑单元3.1.1 逻辑元件3.1.2 一位全加器3.1.3 小结3.2 改进的算术逻辑单元4. 补充

1. 数制与编码
1.1 进制转换

【计算机组成原理-chapter2】数据的表示和运算

注意:并不是所有的十进制都能转二进制,只有1/21/41/8…才能

1.2 BCD码(采用四位二进制数表示十进制数)

【计算机组成原理-chapter2】数据的表示和运算

【计算机组成原理-chapter2】数据的表示和运算

1.3 字符与字符串

【计算机组成原理-chapter2】数据的表示和运算
【计算机组成原理-chapter2】数据的表示和运算
【计算机组成原理-chapter2】数据的表示和运算
【计算机组成原理-chapter2】数据的表示和运算

1.4 奇偶校验(1位检错,不能纠错)

【计算机组成原理-chapter2】数据的表示和运算
【计算机组成原理-chapter2】数据的表示和运算

注意:

    一种编码方式的码距很重要,用来衡量该方案是否有纠错能力。
    奇偶校验,数据传输的过程中只传输数据,而不是校验位+数据。只有在接受数据后,才为数据加上校验位,然后进行判断是否发生错误

【计算机组成原理-chapter2】数据的表示和运算

1.5 海明码(2位检错,1位纠错)

【计算机组成原理-chapter2】数据的表示和运算
上述的海明码还不是实际的海明码,因为其只有检测一位错误的能力,实际上,海明码具有一位纠错,二位检错能力。是因为在其最高位还添加了一个校验位。如下图所示:
【计算机组成原理-chapter2】数据的表示和运算

1.6 循环冗余码CRC(只能检错,纠错1位或多位由多项式决定)

【计算机组成原理-chapter2】数据的表示和运算

【计算机组成原理-chapter2】数据的表示和运算
【计算机组成原理-chapter2】数据的表示和运算

注意:

    在大量数据传送过程中,通常使用CRC校验,而不是奇偶校验或者海明码校验。实际上网络中的数据传输使用的就是CRC
    在CRC中,接收端检测出错误后,有如下三种纠错方法:
    请求重发
    删除数据(触发自动触发)
    通过余数值自行纠正

2. 数的表示与运算

* 数的分类
1. 按小数点的位置分
1. 定点数:平时写的小数,如 6.3
2. 浮点数:科学计数法表示的小数,如 3.14×10^6
2. 按符号分
1. 无符号数
* 注意:通常只有无符号整数,没有无符号小数。
2. 有符号数

2.1 定点数的表示与运算
2.1.1 定点数的表示

无符号定点数很简单,这里不做说明。下面讨论有符号定点数的格式:

2.1.1.1 有符号定点数格式

【计算机组成原理-chapter2】数据的表示和运算

注意:

    定点 整数和定点的默认小数点位置不一样。
    有符号定点数的整数和小数部分是分开存放的,比如19.12,会分成19.12分别单独存放。

2.1.1.2 数值的表示(原码、反码、补码、移码)

1. 原码:真值的绝对值
2. 反码:在原码的基础上,符号位不变,数值部分全部取反
3. 补码:在反码的基础上+1
4. 移码:在补码的基础上,将符号位取反

* 注意:
1. 正数的原码、反码、补码相同,移码是符号位取反。其他的按照上面的方式求。
2. 原码、反码、补码既能表示`定点整数`也能表示`定点小数`,而移码只能表示`定点整数`。

【计算机组成原理-chapter2】数据的表示和运算

注意:在求原码的范围时,就是让所有位位1,然后求其值,所以能够取等于。

原码和反码对0+0-0两种表达,实际上,+0 = -0 = 0,只应该有一种表达,所以出现补码,补码的0只有一种表现形式,空出来的一个位置,用来表示更小的一个负数。补码在比较大小时不方便,比较两个数时,应该是从高位到低位进行比较,数大的大。这样补码的数在比较大小时,刚好是个反的,所以,出现了移码。

其实,补码的出现不只是上面的这个原因,实际上原码在进行一个正数与负数进行加操作,即进行减法操作时会很麻烦,使用补码让减法操作变为加法操作,节省硬件成本,(降低ALU复杂度)。
【计算机组成原理-chapter2】数据的表示和运算

练习:
【计算机组成原理-chapter2】数据的表示和运算
【计算机组成原理-chapter2】数据的表示和运算

2.1.2 定点数的运算
2.1.2.1 移位运算
2.1.2.1.1 算术移位

【计算机组成原理-chapter2】数据的表示和运算
可以通过算术移位实现乘法:
【计算机组成原理-chapter2】数据的表示和运算

2.1.2.1.2 逻辑移位

逻辑移位就是直接舍弃移掉的那一位。
【计算机组成原理-chapter2】数据的表示和运算

2.1.2.1.3 循环移位

【计算机组成原理-chapter2】数据的表示和运算

2.1.2.2 加减运算
2.1.2.2.1 原码的加减

【计算机组成原理-chapter2】数据的表示和运算
因为计算机存放的都是补码,计算时都是根据补码计算的,原码我们只需要会手算就行。

2.1.2.2.2 补码的加减

【计算机组成原理-chapter2】数据的表示和运算

2.1.2.2.3 溢出的判断

那么如何判断加减后是否溢出?
【计算机组成原理-chapter2】数据的表示和运算

2.1.2.2.4 空间扩展的填充的数值

那么出现溢出后应该将空间扩展,比如1B变为2B。如何扩展?
【计算机组成原理-chapter2】数据的表示和运算

2.1.2.3 乘法运算
2.1.2.3.1 原码的一位乘

原码的一位乘,意思是ALU在计算乘法的时候,是拆分成每次计算一位乘实现的。
【计算机组成原理-chapter2】数据的表示和运算
若数值位有n位,则要进行n次一位乘和n次移位才能得到结果。

2.1.2.3.2 补码的一位乘

补码一位乘和原码一位乘非常类似,只需要注意如下几个区别就行:
【计算机组成原理-chapter2】数据的表示和运算
【计算机组成原理-chapter2】数据的表示和运算
原码一位乘需要的寄存器机器字长为n+1(单符号)或n+2(双符号)【n指的是数值位数】;而补码一位乘需要的寄存器机器字长为n+2(双符号),其中ACCX多的一位是填充符号,而MQ中多的一位是做辅助位。(计算机中寄存器的机器字长一般是一样的)

其计算过程如下:
【计算机组成原理-chapter2】数据的表示和运算

2.1.2.3.3 小结

【计算机组成原理-chapter2】数据的表示和运算

2.1.2.4 除法运算
2.1.2.4.1 原码除法
2.1.2.4.1.1 余数恢复法

【计算机组成原理-chapter2】数据的表示和运算

注意:

    乘法中,X存放的是被乘数,MQ中存放的是乘数,最终得到的结果是ACC存放积的高位,MQ存放积的低位。
    除法中,X存放的是除数,ACC中存放的是被除数,最终得到的结果是ACC存放余数,MQ存放商。

2.1.2.4.1.2 加减交替法

【计算机组成原理-chapter2】数据的表示和运算

2.1.2.4.2 补码除法(加减交替法)

【计算机组成原理-chapter2】数据的表示和运算

2.1.2.4.3 小结

【计算机组成原理-chapter2】数据的表示和运算

2.1.3 定点数的强制转换

【计算机组成原理-chapter2】数据的表示和运算

注意:短变长的时候是根据数的正负扩展的,而不是根据最高位扩展。

2.1.3 数据的存储与排列

数据的存储有两种模式:

    大端模式:高位字节存放在低地址处
    小端模式:高位字节存放在高地址处
    【计算机组成原理-chapter2】数据的表示和运算
    现代计算机通常支持按字、半字、按字节寻址,但是最终都会转为按字节编址。如果一台计算机的存储字长为32位,则一个字 = 32bit, 半字 = 16bit。则访问字转为字节时,是对应二进制数左移2位(32bit/8=2^2, 是2次方所以左移两位);同理半字转为字节是左移1位。下面是该例子的示意图:
    【计算机组成原理-chapter2】数据的表示和运算

数据在计算机的排列方式有两种:边界对齐和边界不对齐。
【计算机组成原理-chapter2】数据的表示和运算
边界不对齐方式在访问一个字或者半字的时候可能需要访问两次存储体:
【计算机组成原理-chapter2】数据的表示和运算

注意:
3. 边界对齐的方式是以半字为基本单位,凡是不足半字的一律按占半字的空间处理。【牺牲空间换时间】
4. 边界对齐的方式是以字节为基本单位。

2.3 浮点数的表示与运算
2.3.1 浮点数的表示
2.3.1.1 浮点数格式

定点数的格式,导致位数越多存放的数越大,如果是固定的位数,则其表示的数的范围是不变的。那么如果我们想在位数不变的情况下,增加数的表示范围,如何做到?这叫涉及到浮点数的表示。
【计算机组成原理-chapter2】数据的表示和运算
通过上面的浮点数的格式可以看到,如果我们将尾数的位数变小,阶码的位数变大,则数的表示范围会变大。

2.3.1.2 浮点数的规格化

【计算机组成原理-chapter2】数据的表示和运算
【计算机组成原理-chapter2】数据的表示和运算

2.3.1.3 小结

【计算机组成原理-chapter2】数据的表示和运算

2.3.2 浮点数标准(IEEE754)

我们知道浮点数分阶码和尾数,而阶码和尾数各占多少位?阶码和尾数具体分别用什么码表示?如果不能统一,那么不同计算机间的浮点数会存在差异。接下来介绍一种浮点数的统一标准:IEEE754

之前我们介绍的移码是在补码的基础上符号位取反,这是侠义上的移码,即特指偏移值为2^(n-1) 【其中n是机器字长】,将所有的数向数轴右边移动,最左边的-128变为0, 目的是为了能直接比较数的大小**【将移码当作无符号数,然后就可以比较】**。下面是广义上的移码:
【计算机组成原理-chapter2】数据的表示和运算
IEEE754标准:
【计算机组成原理-chapter2】数据的表示和运算

注意:

    规格化的浮点数是指:阶码部分E不全为1和不全为0【也就是去掉偏移值为2^n-1的两个反常值】,即 1<=E<=254
    非规格化的浮点数是指:阶码部分E全为1和不全为0【也就是偏移值为2^n-1的两个反常值】,即 E=0 或 E=255
    上面计算浮点数的真值的公式是针对于规格化的浮点数,才这样计算。

【计算机组成原理-chapter2】数据的表示和运算
规格化的浮点数的最小值和最大值的范围如上图所示,那么在同样的IEEE75标准下能不能表示更大或更小的浮点数?

实际上是能的,需要用到非规格化的浮点数:
【计算机组成原理-chapter2】数据的表示和运算

【计算机组成原理-chapter2】数据的表示和运算

2.3.3 浮点数的运算
2.3.3.1 浮点数的加减运算

十进制浮点数的加减过程如下:
【计算机组成原理-chapter2】数据的表示和运算
二进制浮点数的加减和十进制非常类似:
【计算机组成原理-chapter2】数据的表示和运算
二进制浮点数计算步骤中的舍入,常用两种方法:
【计算机组成原理-chapter2】数据的表示和运算

2.3.3.2 (C语言)浮点数强制类型转换

【计算机组成原理-chapter2】数据的表示和运算

2.3.3.3 小结

【计算机组成原理-chapter2】数据的表示和运算

3. 算术逻辑单元(ALU)
3.1 算术逻辑单元
3.1.1 逻辑元件

【计算机组成原理-chapter2】数据的表示和运算
【计算机组成原理-chapter2】数据的表示和运算

3.1.2 一位全加器

【计算机组成原理-chapter2】数据的表示和运算

3.1.3 小结

【计算机组成原理-chapter2】数据的表示和运算

【计算机组成原理-chapter2】数据的表示和运算

3.2 改进的算术逻辑单元

【计算机组成原理-chapter2】数据的表示和运算

4. 补充

【计算机组成原理-chapter2】数据的表示和运算

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

【计算机组成原理-chapter2】数据的表示和运算

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » 【计算机组成原理-chapter2】数据的表示和运算
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏