目录

  • 1 数字电路中的数和编码
    • 1.1 十进制数的二进制编码
      • 1.1.1 有权码和无权码
    • 1.2 格雷码
      • 1.2.1 8421BCD码的运算
    • 1.3 用补码表示负数
  • 2 数字逻辑基础
    • 2.1 逻辑变量和逻辑系统
      • 2.1.1 基本逻辑运算
      • 2.1.2 布尔代数公理及其他常用逻辑运算
      • 2.1.3 真值表
    • 2.2 逻辑代数的基本定律
      • 2.2.1 布尔代数的常用公式
      • 2.2.2 布尔代数的三个规则
    • 2.3 逻辑函数的标准表达式
      • 2.3.1 逻辑函数的最小项表达式
      • 2.3.2 逻辑函数的最大项表达式
      • 2.3.3 最小项表达式和最大项表达式的关系
      • 2.3.4 非标准表达式到标准表达式的转换
      • 2.3.5 任意项及其表示
    • 2.4 代数法化简逻辑函数
    • 2.5 卡诺图法化简逻辑函数
      • 2.5.1 逻辑函数的卡诺图表示
      • 2.5.2 卡诺图化简的步骤及举例
  • 3 组合逻辑电路
    • 3.1 组合逻辑电路的特点
    • 3.2 组合逻辑电路的分析
      • 3.2.1 组合逻辑电路的分析步骤
      • 3.2.2 组合逻辑电路分析举例
    • 3.3 组合逻辑电路的设计
      • 3.3.1 组合逻辑电路的设计步骤
      • 3.3.2 组合逻辑电路的实现方式
      • 3.3.3 组合逻辑电路设计举例
    • 3.4 中规模组合逻辑电路
      • 3.4.1 加法器和减法器
      • 3.4.2 编码器
      • 3.4.3 译码器
      • 3.4.4 数据选择器
      • 3.4.5 数值比较器
    • 3.5 中规模组合电路用于逻辑设计
      • 3.5.1 译码电路用作函数发生器
      • 3.5.2 用数据选择器作函数发生器
      • 3.5.3 用全加器作为数码转化器
    • 3.6 组合逻辑电路的竞争与冒险
      • 3.6.1 冒险的分类
      • 3.6.2 冒险的识别和消除
  • 4 集成触发器
    • 4.1 时序逻辑电路的特点
    • 4.2 触发器的基本特性
    • 4.3 触发器的记忆作用
    • 4.4 电位型触发器
      • 4.4.1 基本RS触发器
      • 4.4.2 可控RS触发器
      • 4.4.3 其他可控触发器
      • 4.4.4 可控电位型触发器的局限性
      • 4.4.5 电位型触发器的应用:锁存器
    • 4.5 钟控型触发器
      • 4.5.1 主从触发器
      • 4.5.2 边沿触发器
    • 4.6 触发器的逻辑符号
    • 4.7 CMOS触发器
      • 4.7.1 带使能端D触发器
      • 4.7.2 CMOS主从D触发器
      • 4.7.3 CMOS JK触发器
    • 4.8 触发器的转换
    • 4.9 集成触发器的时间参数
    • 4.10 钟控触发器构成的常用时序电路
      • 4.10.1 寄存器
      • 4.10.2 移位寄存器
      • 4.10.3 计数器
  • 5 时序逻辑电路
    • 5.1 时序电路的分类和描述
      • 5.1.1 时序电路的分类
      • 5.1.2 时序电路的描述
    • 5.2 同步时序电路的分析
      • 5.2.1 同步时序电路的一般框图
      • 5.2.2 序列信号发生器
    • 5.3 移位寄存器构成的时序电路
      • 5.3.1 环形计数器
      • 5.3.2 扭环形计数器
    • 5.4 常用时序电路的设计
      • 5.4.1 计数器的设计
      • 5.4.2 序列信号发生器的设计
      • 5.4.3 M序列发生器
    • 5.5 异步计数器
    • 5.6 中规模时序集成电路
      • 5.6.1 中规模同步计数器
      • 5.6.2 中规模计数器的应用
      • 5.6.3 中规模计数器的级联
      • 5.6.4 中规模移位寄存器
    • 5.7 计数器用于逻辑设计
    • 5.8 一般时序电路的分析
      • 5.8.1 一般时序电路的分析过程和特点举例
    • 5.9 一般时序电路的设计
      • 5.9.1 状态表的建立
      • 5.9.2 状态表的简化
      • 5.9.3 状态分配
  • 6 大规模数字集成电路
    • 6.1 大规模数字集成电路的概述
    • 6.2 存储器
      • 6.2.1 存储器的分类
      • 6.2.2 ROM作为逻辑器件
      • 6.2.3 存储器容量的扩展
    • 6.3 可编程逻辑阵列
    • 6.4 可编程阵列逻辑
    • 6.5 通用阵列逻辑
    • 6.6 复杂可编程逻辑器件
    • 6.7 现场可编程门阵列
    • 6.8 CPLD和FPGA的比较
用补码表示负数


补码(two's complement) 在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值位统一处理;同时,加法和减法也可以统一处理。此外,补码与原码的的相互转换,其运算过程是相同的,不需要额外的硬件电路。

补码概述

计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用1表示“负”,用0表示“正”,而数值位,三种表示方法各不相同。

补码的特性

1、一个整数(或原码)与其补数(或补码)相加,和为模。

2、对一个整数的补码再求补码,等于该整数自身。

3、补码的正零与负零表示方法相同。

模的概念可以帮助理解补数和补码。

“模”是指一个计量系统的计数范围。如时钟等。计算机也可以看成一个计量机器,它也有一个计量范围,即都存在一个“模”。例如:

时钟的计量范围是0~11,模=12。表示n位的计算机计量范围是0~2^(n)-1,模=2^(n)。

“模”实质上是计量器产生“溢出”的量,它的值在计量器上表示不出来,计量器上只能表示出模的余数。任何有模的计量器,均可化减法为加法运算。

例如:假设当前时针指向10点,而准确时间是6点,调整时间可有以下两种拨法:一种是倒拨4小时,即:10-4=6;另一种是顺拨8小时:10+8=12+6=6

在以12模的系统中,加8和减4效果是一样的,因此凡是减4运算,都可以用加8来代替。对“模”而言,8和4互为补数。实际上以12模的系统中,11和1,10和2,9和3,7和5,6和6都有这个特性。共同的特点是两者相加等于模。

对于计算机,其概念和方法完全一样。n位计算机,设n=8, 所能表示的最大数是11111111,若再加1称为100000000(9位),但因只有8位,最高位1自然丢失。又回了00000000,所以8位二进制系统的模为2^8。在这样的系统中减法问题也可以化成加法问题,只需把减数用相应的补数表示就可以了。把补数用到计算机对数的处理上,就是补码。

另外两个概念:

一的补码(one's complement) 指的是正数=原码,负数=反码

二的补码(two's complement) 指的就是通常所指的补码。

整数补码求法

求给定数值的补码分以下两种情况:

正数的补码

正整数的补码与原码相同。