第一章数字逻辑基础
- 二进制、八进制、十进制和十六进制之间的转换
- 原码、反码、补码之间的转换
8421BCD码、格雷码、余三码进制之间的转换
定义概念:
8421码:8421码是最常用的BCD码
,是十进制代码中最常用的一种。在这种编码方式中,每一位二值代码的“1”都代表一个固定数值。将每位“1”所代表的二进制数加起来就可以得到它所代表的十进制数字。因为代码中从左至右看每一位“1”分别代表数字“8”“4”“2”“1”,故得名8421码。其中每一位“1”代表的十进制数称为这一位的权。因为每位的权都是固定不变的,所以8421码是恒权码。
余3码:余3码是在8421的码基础上,把每个代码都加上0011(3)码而形成的,他的主要优点是执行十进制数相加时,能正确的产生进位信号,而且还给减法运算带来了方便
格雷码:使任何两个相邻的代码只有一个二进制位的状态不同,其余3个二进制位必须有相同的状态,这种编码的好处是,从某一编码变到下一个相邻编码时,只有一位的状态发生变化,有利于得到更好的译码波形。格雷码是一种循环码
- 常用的BCD码
十进制数 | 8421码 | 余3码 | 格雷码 |
---|---|---|---|
0 | 0000 | 0011 | 0000 |
1 | 0001 | 0100 | 0001 |
2 | 0010 | 0101 | 0011 |
3 | 0011 | 0110 | 0010 |
4 | 0100 | 0111 | 0110 |
5 | 0101 | 1000 | 1110 |
6 | 0110 | 1001 | 1010 |
7 | 0111 | 1010 | 1000 |
8 | 1000 | 1011 | 1100 |
9 | 1001 | 1100 | 1101 |
8421码与十进制转换
例1:
(3)10 =(0011)8421
因为:3可以由8、4、2、1中4个数字中的2和1相加获得,所以只需要在对应的2和1下面写入1即可,其余4位补0
反过来看,用8421码将二进制数每四位标记,含有1的位置上方对应数字相加即可得到10进制数
例2:
(712)10 =(0111 0001 0010)8421
因为:我们按单个数字来看,7可以由8、4、2、1中4个数字中的4+2+1获得、1可以由1获得、2可以由2获得,所以只需要在对应的数字下面写入1,其余一样补0即可
7:
1:
2:
所以(712)10 =(0111 0001 0010)8421
反过来看,用8421码将二进制数每四位标记,含有1的位置上方对应数字相加即可得到10进制数
8421码与余三码转换
前面说到,余3码是在8421的码基础上,把每个代码都加上0011(3)码而形成的,所以我们在8421码的基础上进行运算就可以
例1:
(1001)8421 =(1100)余三码
例2:
(0111 0001 0010)8421 =(1010 0100 0101)余三码
格雷码转换
先写好二进制的数,比如二进制的0110,对应的四位格雷码就是:右数第一位的0和右数第二位的1作异或运算(相同为0,不同为1),这样得到1作为格雷码的第一位,依次类推,最高位的话保持与二进制一样(此处为0),这样就得到格雷码为0101。
(0110)8421 =(0101)格雷码