逻辑与数字系统设计 第一章 数字逻辑基础
1.1 数制
数制是表示数值的方法 , 按照进位计数就是进位计数制 , 此时涉及权和基数
权为相应数位有关的常数 , 基数为相邻权之比 ,
如 \(123\) , \(1\) 的权为 \(100\) , \(2\) 的权为 \(10\) , 基数为 \(100/10 = 10\)
1 十进制数
对任意进制 , 设长度为 \(n\) , 基数为 \(R\) , 数码用 \(k_i\) 表示 , 其表示的数字为:
十进制数D = \(\sum_{}^{} k_i \times 10^i\)
\(i\)的上下界取决于小数点位置 小数点左侧一位 \(i = 0\) , 由此向左增加 , 向右减少
2 二进制数
也是一种进位计数制 , 表示的值为 $\sum_{}^{} k_i \times 2^i $
3 八进制和十六进制
八进制: $\sum_{}^{} k_i \times 8^i $
十六进制: $\sum_{}^{} k_i \times 16^i $
十六进制的 \(10-16\) 用字母 \(A-F\) 表示
在汇编语言中 , 如果数据为十六进制且首位数码为字母 , 则需要加前导零
C语言中 , 十进制输出用 \(\%d\) , 十六进制用 \(\%x\) , 8进制用 \(\%o\)
4 数制转换
非十进制转十进制: 找到小数点 , 向左向右记录权 , 然后多项式相加
十进制转非十进制: 整数除基取余 , 小数乘基取整
非十进制之间转换: 按照 \(0-15 \Leftrightarrow 0000-1111 \Leftrightarrow 0-F\)关系 ,
同样从小数点左侧一位开始 , 八进制转\(3\)位 , 十六进制转\(4\)位 , 不足补零
1.2 常用编码
1 十进制编码
8421码: 即用 \(0000 - 1001\) 表示 \(0-9\) 从而模拟十进制 , 是伪装成二进制的十进制
余3码: 在8421码基础上每个数值都加 \(3\) , 余3码在求 $ \bmod 9$ 运算中简便
如 \(4\) 的余3码为 \(0111\) 而 \(5\) 的余3码为 \(1000\) 二者互为补码
2 循环码
又称格雷码 , 任意两个相邻数的格雷码只有 \(1\) 位不同 , 第 \(i\) 位按照 \(i\) 个 \(0\) , \(2 \times i\) 个 \(1\) , \(i\) 个 \(0\) 的规律循环
格雷码和二进制转换方式:
二进制转格雷码: 最高位不变 , 其余位和该位高一位相异或得到该位格雷码
格雷码转二进制: 最高位不变 , 其余位和对应二进制位的高一位进行异或得到该位二进制
3 ASCII码
\(8\) 位 , 一共 \(128\) 个编码 , 还有128个扩充对的字符编码
30H(\(48\))为数字 \(0\)
4奇偶校验码
采用前面补一位的方法 ,
奇校验码确保当前编码的\(1\)个数为奇数 , 偶校验码确保当前编码\(1\)的个数为偶数
1.3 二进制数运算
以下式子中 \(n\) 为数据位数
1 二进制数的表示方法
原码: 正数原码为自己本身 , 负数原码为用\(2^{n-1}\)加上该负数的绝对值 , 即绝对值 + 最高位变\(1\)
对定点小数 , 负数原码为 2 - X
补码: 为了避免做减法器 , 创建补码
正数的补码为自己 , 负数的补码为符号位不变 , 其余位取反加\(1\)
负整数补码求法:\(2^n + X\)
负小数补码求法:\(2 + X\)
将\(2^n\) 拆为 \(2^{n-1} + 11111...({n-2}个1) + 1\)
然后让这个数 + X (X为负数) 显然得到的结果等价于最高位变\(1\)(因为X的绝对值最高位为0) , 其余位取反加 \(1\)
负定点小数同理
补运算: 区别于求补码 , 补运算为\(11111...({n-1}个1) + 1 + X\)
也就是"各位(加上符号位)取反\(+1\)" 这个操作
正数补码还是自身 , 而正数求补运算需要各位取反 + 1
求两次补运算得到自身
反码:
正数反码就是自己
负数反码要按位取反 , 也就是 \(2^{n}-1 + X\)
定点小数就是 \(2-2^{-(n-1)} + X\) , 其实也就相当于把它看成负整数再按位取反
2 二进制数的加法减法
无符号数加/减法:直接加/减
有符号加/减法: 求补码再加/减 , 结果再求补码
1.4 逻辑代数基础
1 逻辑变量和逻辑函数
逻辑变量: 如A , A的取值为 \(1\) 或 \(0\)
逻辑函数: 如F = A + B
2 基本逻辑运算和基本逻辑门
基本逻辑运算: AND OR NOT XOR
基本逻辑门: 与门(\(\cdot\)) 或门(\(+\)) 非门(\(\overline{A}\)) 异或门(\(\oplus\)) 同或门(\(\odot\))
异或门和同或门转换公式:
\(A \oplus B = A \overline {B} + \overline {A} B = \overline{A \odot B} = \overline{AB + \overline{AB}} = (\overline{A}+\overline{B})(A+B)\)
正逻辑和负逻辑: 高电平为 \(1\) ,低电平为 \(0\) 为正逻辑. 相反为负逻辑
3 逻辑代数的基本公式和常用公式
基础规则:
此处只写了部分
吸收律: \(A+AB = A\) , \(A(A+B) = A\)
\(A + \overline{A}B = A + B\) , \(A(\overline{A} + B) = AB\)
反演律: \(\overline{AB} = \overline{A} + \overline{B}\)
\(A \oplus 1 = \overline{A}\) 用于求补码中根据最高位判定其余位是否取反
常用公式:
$AB + \overline{A}C + BCDEF = AB + \overline{A}C $
\(A\overline{AB} = A\overline{B}\)
\(\overline{A}\overline{AB} = \overline{A}\)
实际上这两个就是吸收律变形
三个运算规则:
代入规则:略
反演规则:所有 "\(\cdot\)" 和 "\(+\)" 都换为对方 , "\(0\)" 和 "\(1\)" 换为对方 , 所有原变量和反变量换位对方
此时获得原函数的非
对偶规则:所有 "\(\cdot\)" 和 "\(+\)" 都换为对方 , "\(0\)" 和 "\(1\)" 换为对方
此时获得原函数的对偶式
通常可用于证明两个函数表达式相等
4 逻辑函数的表示方法
真值表 , 逻辑函数式 , 逻辑图 , 波形图等
各种表达方式的转换:略
逻辑函数式的两种标准形式:
最大项和最小项表示
最大项用 \(M_i\) 表示 , 最小项用 \(m_i\) 表示 , 二者互为非
如 \(A + B + \overline{C}\) 和 \(\overline{A}\overline{B}C\)
最大项用 \(\cdot\) 相连 , 而最小项用 \(+\) 连接
记某变量和其非为 \(A\)与 \(\overline{A}\) , 则写最小项时 , \(A\) 为 \(1\) , \(\overline{A}\) 为 \(0\)
最大项相反
如 \(AB\overline{C} \Leftrightarrow m_6\) , $ \overline{A}+\overline{B}+C\Leftrightarrow M_6$
\(m_6\) 为仅有\(1 1 0\) 时为 \(1\) , 而 \(M_6\)为仅有\(0 0 1\) 时为 \(0\)
为方便记录 , 用 \(\sum_{}{}m(k_1 , k_2 , k_3......)\)记录最小项表示 , 最大项表示同理
如 \(\sum_{}^{}m(1,3,5,7)\) 表示三个变量的取值为 \(0 0 1\) , \(0 1 1\), \(1 0 1\) , $1 1 1 $构成的几个与项的或
5 逻辑函数的化简方法
公式化简即用上述提到的各种公式进行化简 , 略
卡诺图化简:常用于 \(4\) 个变量以下的化简
将取值为 \(1\) 的数据划分为多个包含所有\(1\)项的 \(1, 2 ,4, 8\) 块 , 然后获得化简结果
需要注意的是 , 卡诺图的轴按照格雷码书写 , 写出来的二进制形式代表对应位的变量取值

浙公网安备 33010602011771号