数字电路技术基础
1.数制与码制
1.数字量与模拟量
数字量:变化在时间上和数量上都是不连续的。(存在一个最小数量单位△)如:13%的音量,14%的音量(这里的△就是1%)
模拟量:变化在时间上和数量上都是连续的。如:身高,温度。
电子电路的作用:处理信息,进行能量转换。
数字电路:用一个离散的电压序列来表示信息。
模拟电路:用连续的模拟电压/电流值来表示信息。
数制:我们把多位数码中每一位的构成方法以及从低位到高位的进位规则称为数制。
码制:当数码表示不同事物或事物不同状态时,数码成为了不同事物的代号,称为代码。编制代码时遵循的一定规则称为码制。
2.数制
1.常见的进制
任意一个N进制数均可以展开为
D
=
∑
k
i
×
N
i
D=\sum{k_i}\times N^i
D=∑ki×Ni
其中看ki位第 i位的系数,它可以是0—N-1这N个数里面的任意一个。若整数部分有m位,小数部分有n位,则i从n-1取到-m,其中N称为第i位的系数,Ni称为第i位的权。
在数字电路技术中常用2,8,16进制。
如十进制:120.2=1x102+2x101+0X100+2x10-1
如8进制:670.3=6x82+7x81+0X80+3x8-1
2.进制的转换
1.N进制到十进制转换
整数部分除N取余
(
S
)
10
=
k
n
N
n
+
k
n
−
1
N
n
−
1
+
.
.
.
+
k
1
N
1
+
k
0
N
0
\left( S \right) _{10}=k_nN^n+k_{n-1}N^{n-1}+...+k_1N^1+k_0N^0
(S)10=knNn+kn−1Nn−1+...+k1N1+k0N0
( S ) 10 / N = ( k n N n − 1 + K n − 1 N n − 2 + . . . + k 1 ) + k 0 / N k 0 肯定小于 N \left( S \right) _{10}/N=\left( k_nN^{n-1}+K_{n-1}N^{n-2}+...+k_1 \right) +k_0/Nk_0肯定小于N (S)10/N=(knNn−1+Kn−1Nn−2+...+k1)+k0/Nk0肯定小于N
这个式子表示将要转换的N进制数的整数部分第一次除以N就可以得到整数部分的第0位。
以此循环可得到整数位各个位的系数。
小数部分:乘N取整(向下取整)
(
S
)
10
=
k
n
N
−
1
+
k
n
−
1
N
−
2
+
.
.
.
+
k
1
N
−
m
+
1
+
k
0
N
−
m
\left( S \right) _{10}=k_nN^{-1}+k_{n-1}N^{-2}+...+k_1N^{-m+1}+k_0N^{-m}
(S)10=knN−1+kn−1N−2+...+k1N−m+1+k0N−m
( S ) 10 × N ≐ k n + ( k n − 1 N − 1 + . . . + k 1 N − m + 2 + k 0 N − m + 1 ) \left( S \right) _{10}\times N\doteq k_n+\left( k_{n-1}N^{-1}+...+k_1N^{-m+2}+k_0N^{-m+1} \right) (S)10×N≐kn+(kn−1N−1+...+k1N−m+2+k0N−m+1)
这个式子表示将要转换的N进制数的小数部分第一次乘以N就可以得到小数部分的第0位。
以此循环可得到小数位各个位的系数。
2.二进制与十六进制的相互转换
二进制与八进制的相互转换也是一样
3.二进制的运算
左移,右移的位运算:
3.原码,反码,补码
原码:二进制数的正、负号也是用0/1表示的。在定点运算中,最高位为符号位(0为正,1为负)
如 +89 = (0 1011001)
-89 = (1 1011001)
弊端:做减法运算需要比较两数的大小,有两个0
反码(1’s Complement):正数的原码与反码相同,负数的原码是原码取反的结果
弊端:1000与0000都表示0
补码(2’s Complement):正数的补码即为原码,负数的补码为原码取反再在最后一位加1(取反过程不包含符号位)
如 -89的补码
-89=(1 (1011011)'+0000001)=(1 0100111)
上述弊端解决方法:为了防止浪费位数,在此我们规定1000作为-8的原码与补码而不是表示负0
4.常见编码
1.十进制代码
2.格雷码(Gray Code)
最右边一位的状态按 0110 顺序循环变化右边第二位的状态按00111100 顺序循环变化,右边第三位按 0000111111110000 顺序循环变化。可见,自右向左,每一位状态循环中连续的01数目增加一倍。由于4 位格雷码只有16个,所以最左边一位的状态只有半个循环,即0000000011111111。按照上述原则,我们就很容易得到更多位数的格雷码。
作用:可以避免过度噪声,如二进制代码0011向0100转换可能出现0101的状态而用格雷码就不会产生这种问题因为格雷码相邻数间只有一位不同。
3.ASCII码
ASCII码(American Standard Code for Information Interchange)用八位二进制数表示有28=128个代码
5.逻辑代数基础
德摩根定理
形式逻辑中此定律表达形式:
(
A
⋅
B
)
’’
=
A
’
+
B
’’
\left( A\cdot B \right)’ ’=A’+B’’
(A⋅B)’’=A’+B’’
( A ’ + B ′ ) ’ = A ′ ㆍ B ′ ’ \left( A’+B' \right) ’=A'ㆍB'’ (A’+B′)’=A′ㆍB′’
在集合论中:
在概率论中:
验证逻辑公式是否成立:
1.列出真值表
2.利用基本的逻辑公式推演
法一:
(A+B)ㆍ(A+C)
=A⋅A+B⋅A+A⋅C+B⋅C
=A⋅(1+B+C)+B⋅C(括号里是或关系,且有一个值为1则值一定为1)
=A+B⋅C
法二:德摩根定理
((A+B⋅C)‘)’
=(A’⋅(B⋅C)‘)’
=(A’⋅(B’+C’))’
=(A’⋅B‘+A’⋅C’)’
=(A’B)‘⋅(A’C’)
=(A+B)⋅(A+C)
(22)
法一:
A+A’⋅B
=(A+A’)⋅(A+B)(运用了公式上面的17)
=A+B
法二:德摩根定理
((A+A’⋅B)‘)’
=(A’⋅(A’⋅B)‘)’
=(A’⋅(A+B’))’
=(A’A+A’B’)’
=(AA’)‘⋅(A’B’)
=(A+A’)⋅(A+B)
=A+B
(25)若出现了AB与A’C后面那个与A无关的式子可以省去
A⋅B+A‘⋅C+B⋅C
=A⋅B+A‘⋅C+B⋅C(A+A’)
=A⋅B+A‘⋅C+B⋅C⋅A+B⋅C⋅A’
=A⋅B(1+C)+A’⋅C⋅(1+B)
=A⋅B+A’⋅C