计算机组成原理-第二章(2)BCD码

计算机组成原理

此系列为王道计算机考研组成原理精细笔记


计算机组成原理-第二章(2)BCD码

  • 计算机组成原理
  • 第二章 数据的表示和运算
    • BCD码
      • 8421码
      • 余3码
  • 总结

通过第一章的学习,我们知道了计算机分为五大部件并且了解了这5大部件各自的作用,有了前面的知识,我们该死的求知欲告诉我们,接下来我们需要探究的是:

(1)数据如何在计算机中表示

(2)运算器如何实现数据的算数字、逻辑运算。


第二章 数据的表示和运算

BCD码

计算机组成原理-第二章(2)BCD码_第1张图片

  我们前面学习了,二进制和十进制等知识,其中二进制是计算机可以处理的,而十进制是我们人最熟悉的。

  我们之前将二进制转换为十进制的方式是,用每一个数码位乘以它对应的权值,进行一个相乘相加的操作就能完成转换,但这种方式比较复杂,所有就有了我们今天要学习的BCD码。

  BCD码的原理是:我们可以用四个二进制位去表示一个十进制,因为四个二进制会有16种状态,足够表示十进制里面0-9这十种状态,但是也会冗余6种状态。这种方式能够将二进制快速转换为十进制。

  下面我们学习的第一种BCD码:8421码:

8421码

  刚才我们说了用4个二进制位来表示1个十进制位,这个8421码对应的就是二进制位上的权重为8,4,2,1

  如果我们表示(985)10=1001 1000 0101

8421码的映射关系:
计算机组成原理-第二章(2)BCD码_第2张图片

  我们已经知道什么是8421码了,现在我们如何去进行8421码的加法运算呢?

  如果是我们手动计算,就是我们做题的时候,这时候可以采用一种方式是:先将对应的十进制数进行相加,再将其转为8421码即可,计算机的做法呢?

  计算机的做法我们拿一个例子来说:

  如下图:有十进制5和8两个数,我们需要对其进行相加,计算机会将两者先转换为8421码,对应的就是0101+1000这样会得到1101,但是在8421码里面1010-1111是没有定义的所以,我们还需要给机器计算出来的数加个6,为什么呢?因为4个二进制位只能表示0-15这些状态,而对于处于10-15的这几个数我们给它加6就可以使它进位(向高位进1),而低位又是我们想要的个位的部分,比如之前的13这个数机器算出来是1101我们将其+0110(就是十进制的6),就会得到10011将空位补0得到00010011也就是二进制表示十进制的13。
计算机组成原理-第二章(2)BCD码_第3张图片

余3码

  现在为止,我们介绍了8421码,用4个二进制位转换成16种不同的状态,使用其中的0-9进行映射,如果我们修改当前编码方案就能得到不同的映射方案,如余3码:

  余3码就是8421码的基础上再加上3,对于余3码来说0这个数应该是0011,因为它是在8421码的基础上+3即+0011

  有必要说一下的是8421码中每个位置都是有固定权重的即8421,而余3码是没有固定权值的,所以我们将8421这种称为有权码,余3码称为无权码。

  我们还需要介绍一种有权码:2421码,原理与8421码相同,只是改变了每个位置的权值。需要注意的是2421码中,规定0-4中第一位数必须是0,5-9中第一位数必须是1。这样就可以使得2421码的编码方案统一。
计算机组成原理-第二章(2)BCD码_第4张图片

总结

下一节是字符与字符串,期待大家和我交流,留言或者私信,一起学习,一起进步!

你可能感兴趣的:(计算机组成原理,计算机组成原理)