![数字电路逻辑设计(第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/659/31594659/b_31594659.jpg)
1.2 数制及其转换
1.2.1 进位计数制
数制是人们对数量计数的一种统计规律。日常生活中广泛使用的是十进制,而数字系统中使用的是二进制。
1. 十进制
十进制中采用了0、1、…、9共10个基本数字符号,进位规律是“逢十进一”。当用若干个数字符号并在一起表示一个数时,处在不同位置的数字符号,其值的含义不同。例如,
![](https://epubservercos.yuewen.com/BDEB7E/17103748904602906/epubprivate/OEBPS/Images/38070-00-012-01.jpg?sign=1739280393-FD9stcNqDUUAwRmzW7IqLuSS5kIimuAQ-0-9b6335d3ab8609168fc0fb27c56a2bb4)
同一个字符8从左到右所代表的值依次为800、80、8,即十进制数888可以表示成(888)10=8×102+8×101+8×100。
十进制的特点可以推广到任意进制。广义地说,一种进位计数制包含着基数和位权两个基本的要素。基数是指计数制中所用到的数字符号的个数,位权是指在一种进位计数制表示的数中,用来表明不同数位上数值大小的一个固定常数。不同数位有不同的位权,某一个数位的数值等于这一位的数字符号乘上与该位对应的位权。例如,十进制数的位权是10的整数次幂,其个位的位权是100,十位的位权是101……
2. R进制
任意R进制中包含0、1、…、R-1共R个数字符号,进位规律是“逢R进一”。R进制数的位权是R的整数次幂。
一个R进制数N可以有以下两种表示方法:
① 并列表示法(又称位置计数法),其表达式为
(N)R=(Kn-1Kn-2…K1K0.K-1K-2…K-m)R
② 多项式表示法(又称按权展开法),其表达式为
![](https://epubservercos.yuewen.com/BDEB7E/17103748904602906/epubprivate/OEBPS/Images/38070-00-013-01.jpg?sign=1739280393-95XgtZ9iJ6Qmokh3mwpaUjQpjQw7pDBo-0-5b00a7a78cca06c5c390cb04ce27cb7a)
式中:
R——基数;
n——整数部分的位数;
m——小数部分的位数;
Ki——R进制中的一个数字符号,其取值范围为0≤Ki≤R-1(-m≤i≤n-1)。
R进制的特点可归纳如下。
① 有0、1、…、R-1共R个数字符号。
② “逢R进一”,“10”表示R。
③ 位权是R的整数次幂,第i位的权为Ri (-m≤i≤n-1)。
3. 二进制
二进制中只有0和1两个基本数字符号,进位规律是“逢二进一”,“10”表示2。二进制数的位权是2的整数次幂。
任意一个二进制数N可以表示成
![](https://epubservercos.yuewen.com/BDEB7E/17103748904602906/epubprivate/OEBPS/Images/38070-00-013-02.jpg?sign=1739280393-X33lyVhx5HTUQnthcJvy2sz3I9FcyV9u-0-462241b5c7fa509859c986a59042deb3)
式中:
n——整数位数;
m——小数位数;
Ki——为0或者1,-m≤i≤n-1。
例如,一个二进制数1101.101可以表示成
(1101.101)2=1×23+1×22+0×21+1×20+1×2-1+0×2-2+1×2-3
二进制数的运算规则如下。
![](https://epubservercos.yuewen.com/BDEB7E/17103748904602906/epubprivate/OEBPS/Images/t001.jpg?sign=1739280393-2J1q7avxMpn5NMCgmC0AJFf3Ay21qdBq-0-50eb501e2a694b3c27ddd5f3c58fb59e)
二进制的优点:运算简单、物理实现容易、存储和传送方便、可靠。
因为二进制中只有0和1两个数字符号,可以用电子器件的两种不同状态来表示一位二进制数。例如,可以用晶体管的截止和导通表示1和0,或者用电平的高和低表示1和0等。所以,在数字系统中普遍采用二进制。
二进制的缺点:数的位数太长且字符单调,使得书写、记忆和阅读不方便。因此,人们在进行指令书写、程序输入和输出等工作时,通常采用八进制数和十六进制数作为二进制数的缩写。
4. 八进制
基数R=8的进位计数制称为八进制。八进制数中有0、1、…、7共8个基本数字符号,进位规律是“逢八进一”。八进制数的位权是8的整数次幂。
任意一个八进制数N可以表示成
![](https://epubservercos.yuewen.com/BDEB7E/17103748904602906/epubprivate/OEBPS/Images/38070-00-014-01.jpg?sign=1739280393-hFlUd89zzurWM7mEK5n6i9a0mgfC4mRh-0-5be6bcd662558e6bd4ab7febd25dc81c)
式中:
n——整数位数;
m——小数位数;
Ki——0~7中的任何一个字符,-m≤i≤n-1。
5. 十六进制
基数R=16的进位计数制称为十六进制。十六进制数中有0、1、…、9、A、B、C、D、E、F共16个字符,其中,A~F分别表示十进制数的10~15。进位规律为“逢十六进一”。十六进制数的位权是16的整数次幂。
任意一个十六进制数N可以表示成
![](https://epubservercos.yuewen.com/BDEB7E/17103748904602906/epubprivate/OEBPS/Images/38070-00-014-02.jpg?sign=1739280393-oao4NwRj4v6cfRymL5MDQk5hK9p4W01Z-0-3242928eabcc9ec232d5ea68a76f17da)
式中:
n——整数位数;m——小数位数;Ki——表示0~9、A~F中的任何一个字符,-m≤i≤n-1。
表1.1列出了十进制数0~15对应的二进制数、八进制数和十六进制数。
表1.1 十进制数与二、八、十六进制数对照表
![](https://epubservercos.yuewen.com/BDEB7E/17103748904602906/epubprivate/OEBPS/Images/38070-00-015-01.jpg?sign=1739280393-eRHlCVIcuWkXs0rUX2gClEtwBLUym8yD-0-4a868d0753068c9f2280d5a632f54248)
1.2.2 数制转换
数制转换是指将一个数从一种进位制转换成另一种进位制。从实际应用出发,要求掌握二进制数与十进制数、八进制数和十六进制数之间的相互转换。
1. 二进制数与十进制数之间的转换
(1)二进制数转换为十进制数
二进制数转换为十进制数采用多项式替代法,即将二进制数表示成按权展开式,并按十进制运算法则进行计算,所得结果即为该二进制数对应的十进制数。
例如,(10111.001)2=(?)10。
(10111.001)2=1×24+1×22+1×21+1×20+1×2-3=16+4+2+1+0.125=(23.125)10
(2)十进制数转换为二进制数
十进制数转换成二进制数采用基数乘除法。转换时对整数和小数应分别进行处理,整数转换采用“除2列余”的方法,小数转换采用“乘2取整”的方法。
① 整数转换——“除2列余”法:将十进制整数N除以2,取余数计为K0;再将所得商除以2,取余数记为K1;……以此类推,直至商为0,取余数计为Kn-1为止,即可得到与N对应的n位二进制整数Kn-1…K1K0。
例如,(35)10=(?)2。
![](https://epubservercos.yuewen.com/BDEB7E/17103748904602906/epubprivate/OEBPS/Images/38070-00-015-02.jpg?sign=1739280393-H0UiRrqSJXTKEqUsxf90nxrUBXq85Efr-0-54d1ee94d389c9e34bfd84ae27aed7c9)
即 (35)10=(100011)2。
② 小数转换——“乘2取整”法:将十进制小数N乘以2,取积的整数部分记为K-1;再将积的小数部分乘以2,取整数部分记为K-2;……依此类推,直至其小数部分为0或达到规定精度要求,取整数部分记作K-m为止。即可得到与N对应的m位二进制小数0.K-1K-2…K-m。
例如,(0.8125)10=(?)2。
![](https://epubservercos.yuewen.com/BDEB7E/17103748904602906/epubprivate/OEBPS/Images/38070-00-016-01.jpg?sign=1739280393-cxMAKU05Jxm0fsmH5uRPlXDc46dzAuCF-0-7656613d7ec1abe0f9241562d84fae8e)
即 (0.8125)10=(0.1101)2。
注意
当十进制小数不能用有限位二进制小数精确表示时,可根据精度要求,求出相应的二进制位数近似的表示。一般当要求二进制数取m位小数时,可求出m+1位,然后对最低位作0舍1入处理。
例如,(0.7125)10=(?)2(保留4位小数)。
![](https://epubservercos.yuewen.com/BDEB7E/17103748904602906/epubprivate/OEBPS/Images/38070-00-016-02.jpg?sign=1739280393-G1bcvJhXw5ud3hGEJMRIrXrkQ3QZVmTr-0-b378bd2196073d7b7ed918c6474cc7e1)
即 (0.7125)10 ≈(0.1011)2。
若一个十进制数既包含整数部分,又包含小数部分,则需将整数部分和小数部分分别转换,然后通过小数点将两部分结果连到一起。
例如,(25.625)10=(?)2。
![](https://epubservercos.yuewen.com/BDEB7E/17103748904602906/epubprivate/OEBPS/Images/38070-00-017-01.jpg?sign=1739280393-H1UVK65ohbnDApLgCpZpID54s1464KNH-0-1527a1c046449d4b43f343b86769b525)
即 (25.625)10=(11001.101)2。
2. 二进制数与八进制数、十六进制数之间的转换
(1)二进制数与八进制数之间的转换
由于八进制的基本数字符号0~7正好和3位二进制数的取值000~111对应,所以,二进制数与八进制数之间的转换可以按位进行。
二进制数转换成八进制数时,以小数点为界,分别往高、往低分组,每3位为一组,最后不足3位时用0补充,然后写出每组对应的八进制字符,即为相应八进制数。
例如,(11110101.01111)2=(?)8。
![](https://epubservercos.yuewen.com/BDEB7E/17103748904602906/epubprivate/OEBPS/Images/38070-00-017-02.jpg?sign=1739280393-Yd0q5rBZQBd1RV55ip3CorUN5zjMumab-0-4e1b641f5b6354376db2f0e1f0c8a15b)
即 (11110101.01111)2=(365.36)8。
八进制数转换成二进制数时,只需将每位八进制数用3位二进制数表示。
例如,(52.3)8=(?)2。
![](https://epubservercos.yuewen.com/BDEB7E/17103748904602906/epubprivate/OEBPS/Images/38070-00-017-03.jpg?sign=1739280393-jAMhOR4wXwhT6cQNnKR6qZrrfJ720q6P-0-fddce4dfb64cf5574e445211ad62cb3f)
即 (52.3)8=(101010.011)2。
(2)二进制数与十六进制数之间的转换
二进制数与十六进制数之间的转换同样是按位进行的,只不过是4位二进制数对应1位十六进制数,即4位二进制数的取值0000~1111分别对应十六进制字符0~F。
二进制数转换成十六进制数时,以小数点为界,分别往高、往低分组,每4位为一组,最后不足4位时用0补充,然后写出每组对应的十六进制字符即可。
例如,(1101010.1011)2=(?)16。
![](https://epubservercos.yuewen.com/BDEB7E/17103748904602906/epubprivate/OEBPS/Images/38070-00-018-01.jpg?sign=1739280393-VbfT9CheeuP6Ggq1MuOwXY5unG8sltah-0-0fad7f54c15cbddd5b90ac4c51b37eb7)
即 (1101010.1011)2=(6A.B)16。
十六进制数转换成二进制数时,只需将每位十六进制数用4位二进制数表示。
例如,(8F.9)16=(?)2。
![](https://epubservercos.yuewen.com/BDEB7E/17103748904602906/epubprivate/OEBPS/Images/38070-00-018-02.jpg?sign=1739280393-ueKyKUUY9Imk8sTmLje1pAOw0jHKJHDB-0-b1a17eeb9904d0acf8754a94661e12b8)
即 (8F.9)16=(10001111.1001)2。