数制
仅用来表示一个数。对于同一个数,在不同数制下的表现形式不同,但数学含义相同
二进制
- 二进制例:101、11101...
十进制
- 十进制例:5、29...
- 但实际上,不可能在电路中直接存放"5",电路中只有1和0,因此我们用10000直接表示十进制5
其他进制
- 与上述相同
码制
-
在规定的码制下,我们可以进行同一个数内==不同进制之间的转换==
-
对于10进制"29"来说,其实是可以直接转为2进制的(11101),但这会造成位数的不确定,我们可以将它转换为==固定位数的若干组2进制==,其他进制转换同理
-
以下码制均讨论:将10进制数转换为==若干组4位2进制数==
8421BCD码(有权)
-
若把10进制"29"(即电路中的1000...000,一共29位)转换到2进制:
-
29拆为2和9
- 2在8421BCD中为0010,9在8421BCD中为1001
-
因此10进制"29"就是二进制的0010 1001
-
8421码的修正:
-
原因:用8421码来表示十进制数时,只用了其中0000~1001(对应十进制数0~9)的十个编码,而1010~1111被看作是冗余码(对应十进制数10~15)。当两个用8421码表示的十进制数相加时,如果和落在冗余码范围内,则满十而未进一,故需进行和的修正。
- 也就是说,理论是满10进1,但是映射到4位二进制数是满16进1的
-
修正:当转换后,如果存在一组或多组冗余码,出现映射错误,需要+6,即+0110来修正这个误差
-
5421、2421BCD码类似,下略。