参考教材:《数字电路逻辑设计》欧阳星明 人民邮电出版社
参考教程: 中国大学MOOC 西安工业大学《数字电子技术基础》
层级 | |
---|---|
第6层 | user |
第5层 | 高级语言 |
第4层 | 汇编语言 |
第3层 | 系统软件 |
第2层 | 机器 |
第1层 | 控制 |
第0层 | 数字逻辑 |
电信号根据信号特征的不同,分为模拟信号(模拟量)和数字信号(数字量)
电信号有啥作用呢?
- 传导电能,驱动用电设备
- 传导信号,表达某种信息
不会出现1.5,2.5这种小数
高低电平的转换瞬时完成,呈现方形,所以数字信号也称为方波信号
模拟信号可以表达能量,也可以表达信息,但是数字信号只能表达信息,在此门课中,处理数字信号,是为了处理数字信号所表达的某种有用信息
电能的传输要求稳定连续无干扰
比如 2.4V~5V 电压水平较高,可称之为高电平
0V~0.8V 电压水平较低,可称之为低电平
0,1只是表示状态,并没有量的概念
所以也称为逻辑”1“,逻辑”0“
有较强的稳定性、可靠性和抗干扰能力
要能够区分0和1,而0和1所表示的状态都处在一个范围内,有时候会有干扰,会偏离标准值,一定的抗干扰能力能使得电平不超过范围
具有算术运算能力和逻辑运算能力,可进行逻辑推理和逻辑判断
电路结构简单,便于制造和集成
集成度越高,工艺越好
使用方便灵活
数字电路还可以有这样的定义:
用来对数字信号进行逻辑运算,以实现逻辑命题的电路,也称为逻辑电路
x为逻辑变量
先对现实中的逻辑问题进行建模得到一个待设计的数字逻辑系统,然后拿各种逻辑运算单元去实现之
进位计数制:以进位方式实现计数的方法
R进制有R个数码,基数是R
运算规律:逢R进1
一个R进制数
注意下标方式可以有两种
概览:
按权展开,相加即可
如:
$$
(1011.011)2=1\times 2^3+0\times 2^2+1\times 2^1+1\times 20+0\times2{-1}+1\times 2^{-2}+1\times 2^{-3}\(3AB.11){16}=3\times 16^2+10\times 16^1+11\times 16^0+1\times 16^{-1}+1\times 16^{-2}\
$$
整数部分:除基数R取余
小数部分: 乘基数R取整
如 ( 25.638 ) 10 (25.638)_{10} (25.638)10转换为二进制数
关于整数部分高低位:一直往下除,肯定是高位,比如说第一个除了2,是除了2的一次方,除了4个2,那就是除了2的四次方
关于小数部分乘基取整的解释:
参考教程链接
注:16进制:A~F表示10~15
引入:
在八进制和十六进制的转化中,我们一般会选取2进制作为桥梁,这是为啥呢?
人类描述数值的时候用的是十进制,当人类发明了数字系统,就希望将数字交给机器处理,那么首先就要给机器输入数据
而机器只认识0和1组成的二进制数,那就要把十进制数据转换为二进制数据
一个十进制数大一点的话,那那个二进制数就好多位了
如果要修改一个由大量的0和1组成的二进制数,那是非常麻烦的
所以将这种形式的数据输入给机器,可读性不是很好
那么,有什么解决办法呢?数位压缩
把三位压缩为一位,就出现了八进制
把四位压缩为一位,就出现了十六进制,这样的方式书写数据,可读性比二进制好很多
所以可以把八进制、十六进制看成数位压缩形式表达的二进制数类型
所以二进制和十进制的转换是真正的数制转换,而二进制与八进制、十六进制其实可以看成只是形式上的变化(八、十六进制没有脱离二进制类型)
所以二与十进制之间的转换比二与八、十六之间的转换更难一些
简介
概述
编学号也有规则
用 n n n位二进制数给 N N N个对象进行编码时,应满足 2 n ⩾ N 2^n\geqslant N 2n⩾N
比如140名同学编码
用十进制编码 0~139,要三位数
有 i i i位十进制数,就有 1 0 i 10^i 10i个数码,所以要求 1 0 i ⩾ 140 10^i \geqslant 140 10i⩾140
用二进制就要求 2 i ⩾ N 2^i\geqslant N 2i⩾N
binary -coding -decimal
用四位二进制数对十进制数进行编码 BCD码
至少满足能对0~9这十个对象进行编码, 则至少需要4位二进制数
这4位二进制数一共有16种组合,从16种组合中任意拿出10种给那十个对象编码即可,那么这样的编码方案自然不是唯一的
所以BCD码是多种多样的
可以有这样一种表述:
BCD码是用二进制码元形式表示的十进制数
举个例子来理解:
先将19用BCD码表示,如果把00011001当成二进制数,就不是19了,如图
8421码全称8421BCD码 (最常用的是8421)
余3码
2421码
5421码
关于余3循环码:
十进制数如何转化为余3循环码? - 大橘猫的回答 - 知乎 https://www.zhihu.com/question/372870994/answer/1641707594
例
( 001101001000.01010111 ) 8421 = ( 348.57 ) 10 (001101001000.01010111)_{8421}=(348.57)_{10} (001101001000.01010111)8421=(348.57)10
( 692.41 ) 10 = ( 011010010010.01000001 ) 8421 (692.41)_{10}=(011010010010.01000001)_{8421} (692.41)10=(011010010010.01000001)8421
格雷码的编码思想是尽量避免在工作过程中出现错误
((American Standard Code for Information Interchange): 美国信息交换标准代码)
采用7位二进制编码,用来表示 2 7 2^7 27个字符