RRR申精「数字进位制」
Type-0物理学精选申请计算机科学
复制 <discussion=作品ID>标题</discussion>,可粘贴到物实帖子正文
作品正文
数字电路的入门与进阶
目录
<a>1数制和编码</a>
—1数字进位制
—2位权值和基数
—3不同数字进位制的数字的转换
—4二进制数与十六进制数/八进制数的转换
<a>1</a>
计数进位制(简称数制)
数字进位制是按照进位的方法来进行计数的,在学习逻辑电路中,最常用的数字进位制有三种:
1二进制 这是在数字电路中最常见的数字进位制,也是最简单的数字进位制,它只由0,1组成。在之后的学习中,它将频繁出现。
2十进制 这是在生活当中我们最常用的数字进位制,规则也很简单,从零到九,九再加上一,就会进位,变成10,简称逢10进一
3十六进制 相对来讲并不是那么的常见,但是运用在译码器等元件上面,甚至你在物理实验室登记账号的时间也可以给你查出来:复制你的名片序号,取前八位,将其转化为十进制,这个数字就是自1970年1月1日00:00:00,(在格林威治时间)距离你注册账号之间的秒钟数,利用这个方法你就可以知道你是啥时候注册账号的了。
<a>2</a>
在学习完三个数字进位制以后,你还需要学习位权值,以及基数:
位权值:这个相对较难,位权值指的是数字进位制当中每一个数位对应的位值,通俗来讲,你可以这么理解:就是你这个数位如果是X,并且你使用的数字进位制是Y进制,那么你的位权值=Y^(X-1),例如,在十进制中,百位的位权值,带入公式就可以求得为10^(3-1)=100。
基数:很简单,在教科书上的定义叫做:表示计数进位制所用字符或者数码的个数。如果你看不懂,也没关系,最简单的取值方式:你是几进制你就是几。例如在十进制当中,基数就等于10。一般写在数字的右下标,例如(100)10【1】。
<a>3</a>
不同数字进位制的数字的转换【6】
整数:
高位转低位:
(我并没有按照课本上的严格术语,1我写不来,2我写了,有人可能看不懂)
假设高位数数字的基数为A,数字为B
你要转化的低位数字的基数为C,数字的每一位从个位到最后一位分别为D1,D2,D3…Dx,数字为D【2】
方法:
(1)把B作为被除数,除数等于C,得到商E1【2】和余数F1【2】
(2)把余数F1【2】转化为转化后数字的最低位D1【2】
(3)把E1【2】再一次作为被除数,继续做相同的除法,也就是除以C,得到商E2【2】,以及余数F2【2】,然后F2【2】就等于D2
(4)继续做相同的除法,直到商等于零,得到了余数,就可以转化为转换后整数的最高位Dx【2】
该方法叫做短除法
例如把十进制的90转化为二进制:
2|90 余数
———
2|45……0(LSB)【3】
———
2|22……1
———
2|11……0
———
2|5……1
———
2|2……1
———
2|1……0
———
0……1(MSB)【4】
所以结果为(90)10【1】(1011010)2【2】
高进制转低进制小数:
(1)把被转换的高进制数字作为一个乘数,在以转换后的低进制数字的基数作为另外一个乘数做除法,得到了积;如果是十进制转化为二进制,十进制0.6转化为二进制,那么计算方式就是0.6×2=1.2
(2)所得的积除以1,所得到的商,就是小数当中的最高位
(3)将上一步骤得到的余数再一次做乘法,另一个乘数依然是转换后的低进制数字的基数,又得到了积,然后再一次除以1,所得到的商,就是小数当中的次高位
(4)重复执行这个步骤,直到余数等于零
该方法叫做连乘取整法【5】
例如把十进制的0.6875转化为二进制:
0.6875 ×2 = 1.375
1.375 ÷1=1……0.375———1
0.375×2 = 0.75
0.75 ÷1=0……0.75———0
0.75×2=1.5
1.5 ÷1=1……0.5———1
0.5×2=1
1 ÷1 = 1…0停止———1
所以最终的结果等于0.1011
<a>4</a>
二进制数与十六进制数/八进制数的转换
因为8等于2的三次方,16等于2的四次方
所以他们之间转换是特别方便的
1二进制数字转化为八进制数
以小数点为原点,分别向左右每隔三位分组,当最高位数和最低位数不足三个的时,应当添加零补足三位,然后直接进行转换。
例:101110.1010转化为八进制
101 110.101 0
101 110.101 000
5 6 . 5 0
等于56.5
2二进制数转化为十六进制数
以小数点为原点,分别向左右每隔四组分组,当最高位和最低位都不足四位的时候应当添加零补足四位,然后写出每一组等值的十六进制数
十六进制数/十进制对照表
十六进制数 十进制数
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
A 10
B 11
C 12
D 13
E 14
F 15
例:101110.1010转化为十六进制
10 1110.1010
0010 1110.1010
2 E . A
等于2E.A
注释:
【1】由于无法在文本当中打出下标,所以只能这么写了。真实的下标是
<size=64>(100)</size>
10
如果看到后面有数字带有注释一的标签,那么括号后的数字就是右下标。
【2】这里也是右下标,但是没有办法表示。但是这个并不是基数,而是普通的下标。
【3】LSB,转换所得整数的最低位
【4】MSB,转换所得整数的最高位
【5】我稍微改进了一下,我看的书上面并没有÷1这个步骤,因为教科书上说的是取他的小数部分,我的改进只是为了帮助普通人更好理解。
【6】本部分只用于学习关于逻辑电路的必要转换方式,对于八进制转换成十六进制之类的转换方式,将不介绍
参考资料:
数字电路与逻辑设计 第二版 2016年出版
——本作品内容主要参考于本书的第一章
评审结论说明
系统自动判定:该作品已撤下「精选申请」标签且未入选精选,自动判定为不通过。
作品评分
10.75当前均分(2 人评审)
待通知当前状态
不予建议建议
评审员身份保密:下表仅显示评审员编号与评分,不公开姓名与备注。
最终评审意见
暂无最终评审意见。
评审记录(2)
评审员信息对外保密:仅显示编号。
| 评审员 | 评审时间 | 评分 | 四维明细 | 备注 |
|---|---|---|---|---|
| 评审员#02 | 2026-09-29 14:21 | 11.50 | 知识性 3.5 · 思考深度 1.5 · 行文 3.5 · 其他方面 3.0 | 保密 |
| 评审员#18 | 2026-09-27 14:55 | 10.00 | 知识性 4.0 · 思考深度 1.0 · 行文 4.0 · 其他方面 1.0 | 保密 |