逻辑与数字系统设计 第一章 数字逻辑基础

1.1 数制

数制是表示数值的方法 , 按照进位计数就是进位计数制 , 此时涉及权和基数

权为相应数位有关的常数 , 基数为相邻权之比 ,
\(123\) , \(1\) 的权为 \(100\) , \(2\) 的权为 \(10\) , 基数为 \(100/10 = 10\)

1 十进制数

对任意进制 , 设长度为 \(n\) , 基数为 \(R\) , 数码用 \(k_i\) 表示 , 其表示的数字为:

\[\sum_{}^{} k_i \times R^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\) 块 , 然后获得化简结果

需要注意的是 , 卡诺图的轴按照格雷码书写 , 写出来的二进制形式代表对应位的变量取值

posted @ 2025-03-19 13:36  Guaninf  阅读(69)  评论(0)    收藏  举报