当前位置:网站首页>数字电路基础(一)数制与码制
数字电路基础(一)数制与码制
2022-07-06 09:24:00 【ブリンク】
数字电路基础(一)数制与码制
一、十进制数
在生活中最常用的是十进制计数。用0,1,2,3,4,5,6,7,8,9十个数来表示,这十个数字符号称为数码。十进制数的特点是逢十进一,同一个数码在不同位置(数位)所代表的数值不同。例如,对于6666.66而言,小数点左边第一个为个位,其含义是 6 × 1 0 0 6\times10^0 6×100;小数点左边第二个为十位,其含义是 6 × 1 0 1 6\times10^1 6×101;小数点右边第一个6所代表的含义为 6 × 1 0 − 1 6\times10^{-1} 6×10−1。以此类推,可以知道每一个数位所代表的数值大小,最后取它们的和即是这个数代表的数值。也就是:
6666.66 6666.66 6666.66 = 6 × 1 0 3 6\times10^3 6×103 + 6 × 1 0 2 6\times10^2 6×102 + 6 × 1 0 1 6\times10^1 6×101 + 6 × 1 0 0 6\times10^0 6×100 + 6 × 1 0 − 1 6\times10^{-1} 6×10−1+ 6 × 1 0 − 2 6\times10^{-2} 6×10−2
式中的所有的6被称为系数,103,102,101,100,10-1,10-2 称为每位数对应的权。
故推广至任意十进制数 M 10 M_{10} M10可以表示为:
M 10 M_{10} M10= a n − 1 a_{n-1} an−1 × \times × 1 0 n − 1 10^{n-1} 10n−1+ a n − 2 a_{n-2} an−2 × \times × 1 0 n − 2 10^{n-2} 10n−2+···+ a 1 a_{1} a1 × \times × 1 0 1 10^1 101+ a 0 a_{0} a0 × \times × 1 0 0 10^0 100+ a − 1 a_{-1} a−1 × \times × 1 0 − 1 10^{-1} 10−1+ a − 2 a_{-2} a−2 × \times × 1 0 − 2 10^{-2} 10−2+···+ a − m a_{-m} a−m × \times × 1 0 − m 10^{-m} 10−m
= ∑ i = − m n − 1 a i × 1 0 i \sum^{n-1}_{i=-m}{a_i\times10^i} ∑i=−mn−1ai×10i
这即是十进制数的本质。
二、二进制数
我们可以从十进制数中获取灵感,将它进一步扩充至二进制,二进制也是数字电路中最常见的数制,在整个数字电路中有着至关重要的作用。
二进制使用0和1来作为数码,每逢二则进位,若将十进制数的 M 10 M_{10} M10展开式中的权由10变为2,即得到了二进制的值 M 2 M_2 M2。
M 2 M_2 M2= a n − 1 a_{n-1} an−1 × \times × 2 n − 1 2^{n-1} 2n−1+ a n − 2 a_{n-2} an−2 × \times × 2 n − 2 2^{n-2} 2n−2+···+ a 1 a_{1} a1 × \times × 2 1 2^1 21+ a 0 a_{0} a0 × \times × 2 0 2^0 20+ a − 1 a_{-1} a−1 × \times × 2 − 1 2^{-1} 2−1+ a − 2 a_{-2} a−2 × \times × 2 − 2 2^{-2} 2−2+···+ a − m a_{-m} a−m × \times × 2 − m 2^{-m} 2−m
= ∑ i = − m n − 1 a i × 2 i \sum^{n-1}_{i=-m}{a_i\times2^i} ∑i=−mn−1ai×2i
抛开冗长的公式,类比十进制去理解二进制。
十进制在个位数字的意义即是“有多少个‘1’在这个数中”,而十位数的意义即是“有多少个‘10’在这个数中”……,最后再将它们相加,即是这个数所代表的值。所以,二进制小数点左边第一位的意义即为“有多少个‘2’在这个数中”,小数点左边第二位的意义即为“有多少个‘4’在这个数中”……,最后再将它们相加,即是这个数所代表的值,前面的系数也就是这个数的二进制表达形式。
三、其他数制
常用的其他数制还有八进制、十六进制等,其本质与上面描述的方式没有什么不同。唯一需要值得清楚的是在十六进制中,除了0,1,2,3,4,5,6,7,8,9之外,剩余的六个数码是用A,B,C,D,E,F来表示的。其中A表示十进制数的10,B表示十进制数的11……
四、数制之间的转换
1.二进制数与十进制数的相互转换
(1)二进制转换为十进制
在之前的原理解释中我们提到了一个二进制数的值,是将这个数的系数乘以对应的权得到的结果,那么根据这个思路,我们可以通过计算加权系数之和的方式求得结果。
例如:
M 2 M_2 M2= ( 11011.101 ) 2 (11011.101)_2 (11011.101)2= 1 × 2 4 + 1 × 2 3 + 0 × 2 2 + 1 × 2 1 + 1 × 2 0 + 1 × 2 − 1 + 0 × 2 − 2 + 1 × 2 − 3 1\times2^4+1\times2^3+0\times2^2+1\times2^1+1\times2^0+1\times2^{-1}+0\times2^{-2}+1\times2^{-3} 1×24+1×23+0×22+1×21+1×20+1×2−1+0×2−2+1×2−3
= ( 27.625 ) 10 (27.625)_{10} (27.625)10
(2)十进制转换为二进制
a.整数部分
整数部分的转换使用的是除二取余法。首先我将说明除二取余法的原理是什么。
M 2 M_2 M2= a n − 1 a_{n-1} an−1 × \times × 2 n − 1 2^{n-1} 2n−1+ a n − 2 a_{n-2} an−2 × \times × 2 n − 2 2^{n-2} 2n−2+···+ a 1 a_{1} a1 × \times × 2 1 2^1 21+ a 0 a_{0} a0 × \times × 2 0 2^0 20+ a − 1 a_{-1} a−1 × \times × 2 − 1 2^{-1} 2−1+ a − 2 a_{-2} a−2 × \times × 2 − 2 2^{-2} 2−2+···+ a − m a_{-m} a−m × \times × 2 − m 2^{-m} 2−m
根据二进制数的系数加权式,我们不难发现在上述多项式中每一项都存在一个 2 n 2^n 2n。而 n n n的值是从0开始的,多项式的系数只有两种可能的取值,即“0”和“1”。假设我们将这个多项式直接除以2,直接受到影响的是含有 2 0 2^0 20的项,这将会有两种可能的结果,一是它前面的系数为0,则可以被2整除,故余数为0;二是它前面的系数为1,无法被2整除,故余数为1。我们可以发现余数和它前面的系数是完全一致的。
第一次运算之后发现提取出了 a 0 a_0 a0的值,而剩下的商由于整体的除以2操作降幂,原来的 2 1 2^1 21变为 2 0 2^0 20……以此类推,则又回到了第一次运算时的情况,此时我们只需要重复上述步骤即可。
直到商为0时,这也意味着整个数剩下的部分已经等于0,也就是全部被处理完毕。至此我们以此得到的余数分别为 a 0 a_0 a0, a 1 a_1 a1, a 2 a_2 a2,……, a n a_n an。此时只需将这些数倒叙排列即得到了十进制数的表示。
b.小数部分
有了对整数部分分析的经验,我们也可以轻松理解小数部分的处理方式。
由于小数部分的幂指数都是负数,我们可以每次对小数部分进行乘2操作, 2 − 1 2^{-1} 2−1会变为 2 0 2^0 20……。同样也会有两种可能的结果,一是乘积后的个位为1,这意味着 2 − 1 2^{-1} 2−1(现在已变为 2 0 2^0 20)前的系数为1;二是乘积后的个位为0,这意味着 2 − 1 2^{-1} 2−1(现在已变为 2 0 2^0 20)前的系数为0。
第一次运算后我们得到了 a − 1 a_{-1} a−1的值,以此类推。
直至积为1时,这意味着我们小数部分的内容已经全部处理完毕。我们以此得到 a − 1 a_{-1} a−1, a − 2 a_{-2} a−2, a − 3 a_{-3} a−3,……, a − n a_{-n} a−n的值。至此,我们得到了小数部分的结果。
2.其他数制的相互转换
(1)二进制数与八进制数之间的转换
a.二进制数转换为八进制数
我们知道, 2 3 = 8 2^3=8 23=8,故有八个数码的数值用二进制表示至少需要3位,故每三位二进制数才可能表示一位八进制数,故只需要从小数点两端开始,每三位分为一组,分别将它们用转换为十进制的方法进行转换,如果不足三位则在尾部补0,得到的结果即为对应的八进制数。
例如:
101 011 011 . 110 101 110
5 3 3 . 6 5 6
也就是 ( 101011011.110101110 ) 2 = ( 533.656 ) 8 (101011011.110101110)_2=(533.656)_8 (101011011.110101110)2=(533.656)8
b.八进制数转换为二进制数
同样地,将每一个数分别转换为对应的二进制数,再依次写出即可。可以理解为上述过程的逆过程。
(2)二进制数与十六进制之间的转换
a.二进制数转换为十六进制数
与转换八进制类似地, 2 4 = 16 2^4=16 24=16,故有十六个数码的数值用二进制表示至少需要4位,故每四位二进制数才可能表示一位十六进制数,故只需要从小数点两端开始,每四位分为一组,分别将它们用转换为十进制的方法进行转换,如果不足四位则在尾部补0,得到的结果即为对应的十六进制数。
例如:
0110 1110 . 1101 1100
6 E . D C
也就是 ( 1101110.1101110 ) 2 = ( 6 E . D C ) 16 (1101110.1101110)_2=(6E.DC)_{16} (1101110.1101110)2=(6E.DC)16
b.十六进制数转换为二进制数
同样地,将每一个数分别转换为对应的二进制数,再依次写出即可。可以理解为上述过程的逆过程。
五、常用编码
1.二-十进制编码(BCD码)
(1)8421码
8421码是使用最多的一种BCD码,一种有权码。从最高有效位开始到最低有效位的权分别为8,4,2,1。如果把每一个代码都看成是一个4位二进制数,那么8421码的值等于它所代表的的十进制数的值。
(2)余三码
余三码,余出的3表示余三码所代表的4位二进制数比对应的十进制数多3。
下表展示了十进制数、8421码和余三码之间的关系
十进制数 | 8421码 | 余三码 |
---|---|---|
0 | 0000 | 0011 |
1 | 0001 | 0100 |
2 | 0010 | 0101 |
3 | 0011 | 0110 |
4 | 0100 | 0111 |
5 | 0101 | 1000 |
6 | 0110 | 1001 |
7 | 0111 | 1010 |
8 | 1000 | 1011 |
9 | 1001 | 1100 |
2.循环码
循环码的特点是相邻个编码之间只有一位取值不同。下表可以看出它被称为循环码的原因。
十进制数 | 循环码 | 十进制数 | 循环码 |
---|---|---|---|
0 | 0000 | 8 | 1100 |
1 | 0001 | 9 | 1101 |
2 | 0011 | 10 | 1111 |
3 | 0010 | 11 | 1110 |
4 | 0110 | 12 | 1010 |
5 | 0111 | 13 | 1011 |
6 | 0101 | 14 | 1001 |
7 | 0100 | 15 | 1000 |
可以看出从右边开始第一位的循环是0110,第二位的循环是00111100,第三位的循环是0000111111110000,第四位的循环是0000000011111111.
2022/5/4初稿
参考资料
[1] 李景宏,王永军等.数字逻辑与数字系统(第五版).北京:电子工业出版社,2017.
边栏推荐
- 《英特尔 oneAPI—打开异构新纪元》
- Circular queue (C language)
- Résumé des points de connaissance et des réponses aux exercices après la classe du chapitre 7 de Jia junping dans la huitième édition des statistiques
- 《统计学》第八版贾俊平第五章概率与概率分布
- 《统计学》第八版贾俊平第一章课后习题及答案总结
- Harmonyos JS demo application development
- 《統計學》第八版賈俊平第七章知識點總結及課後習題答案
- Data mining - a discussion on sample imbalance in classification problems
- Captcha killer verification code identification plug-in
- 《统计学》第八版贾俊平第十章方差分析知识点总结及课后习题答案
猜你喜欢
Hackmyvm target series (5) -warez
Harmonyos application development -- address book management system telmanagesys based on listcontainer [phonebook][api v6]
[paper reproduction] cyclegan (based on pytorch framework) {unfinished}
《统计学》第八版贾俊平第六章统计量及抽样分布知识点总结及课后习题答案
Based on authorized access, cross host, and permission allocation under sqlserver
Chain team implementation (C language)
How to turn wechat applet into uniapp
ES全文索引
内网渗透之内网信息收集(一)
Ucos-iii learning records (11) - task management
随机推荐
Spot gold prices rose amid volatility, and the rise in U.S. prices is likely to become the key to the future
【指针】八进制转换为十进制
Network technology related topics
Applet Web Capture -fiddler
SQL injection
Hcip -- MPLS experiment
This article explains in detail how mockmvc is used in practical work
The difference between layer 3 switch and router
MySQL interview questions (4)
记一次edu,SQL注入实战
MySQL中什么是索引?常用的索引有哪些种类?索引在什么情况下会失效?
【指针】求二维数组中最大元素的值
外网打点(信息收集)
Data mining - a discussion on sample imbalance in classification problems
四元数---基本概念(转载)
DVWA (5th week)
Tencent map circle
A complete collection of papers on text recognition
Statistics, 8th Edition, Jia Junping, Chapter VIII, summary of knowledge points of hypothesis test and answers to exercises after class
Xray and Burp linked Mining