第二章 02数据的表示和运算

一、数字电路基础知识 – 逻辑门电路

第二章 02数据的表示和运算

1.1 算数运算vs逻辑运算

第二章 02数据的表示和运算
  • 运算对象区别:
    • 算术运算:处理实数(如1.5,-3.2等)
    • 逻辑运算:仅处理二进制值(0/1,对应假/真)
  • 基本运算对比:
    • 算术基本运算:加、减、乘、除
    • 逻辑基本运算:与、或、非
  • 复合运算原理:
    • 幂次方可拆解为多次乘法(如x3=x×x×x)
    • 异或运算可由与或非组合实现
  • 输入输出特性:
    • 算术运算示例:a+b=c中a,b为输入,c为输出
    • 逻辑运算示例:1和0进行与运算,结果为输出

1.2 基本逻辑运算:与

第二章 02数据的表示和运算
  • 运算规则:仅当A、B同时为1时输出1(全真为真)
  • 门电路特征:
    • 国标画法:方框内写”&”
    • 国际画法:输入端为直线,输出端为圆弧
  • 编程对应:与C语言的”&&”逻辑相同
  • 简化表示:可省略运算符点(如Y=AB)

1.3 基本逻辑运算:或

第二章 02数据的表示和运算
  • 表达式:Y=A+B(“+”读作”或”
  • 运算规则:A、B有任一为1则输出1(一真即真)
  • 门电路特征:
    • 输入端为弧线(区别于与门的直线)
    • 输出端形状可变但输入弧线是识别关键
  • 编程对应:与C语言的”||”逻辑相同
  • 特殊情况:仅当A=B=0时输出0

1.3 基本逻辑运算:非

第二章 02数据的表示和运算
  • 运算规则:输出与输入相反(0变1,1变0)
  • 门电路特征:
    • 必含小圆圈(可以在输入或输出端)
  • 单输入特性:唯一只需一个输入的基本逻辑运算

1.4 复合逻辑运算:与非

第二章 02数据的表示和运算
  • 实现原理:与门后接非门(可简化为与门输出加圆圈)
  • 运算特点:与运算结果取反(全1得0,其余得1
  • 电路简化:实际使用合并符号”与非门”替代级联电路

1.5 复合逻辑运算:或非

第二章 02数据的表示和运算
  • 实现原理:或门后接非门(简化为或门输出加圆圈)
  • 运算特点:或运算结果取反(全0得1,其余得0)
  • 命名规律:NOT+OR→NOR(注意与与非的顺序区别)

1.6 复合逻辑运算:异或(exclusive OR)

第二章 02数据的表示和运算
  • 表达式:Y=A⊕B
  • 运算规则:输入相异输出1,相同输出0
  • 实现原理:通过基本门组合实现
  • 门电路特征:
    • 类似或门但输入端有附加弧线
  • 封装思想:复杂电路简化为标准符号(类比编程函数封装)

n 个比特bit 进行异或,若有奇数个1,则异或结果为 1;若有偶数个1,则异或结果为0

验证方法:可通过逐位异或验证给定比特串中1的个数奇偶性

第二章 02数据的表示和运算
  • 应用领域:
    • 奇校验电路设计
    • 二进制加法器实现
    • 数据校验模块开发

1.7 复合逻辑运算:同或(异或非)- exclusive NOT-OR

第二章 02数据的表示和运算
  • 别名:异或非(XNOR)
  • 运算规则:与异或相反(输入相同输出1,相异输出0
  • 实现原理:异或门后接非门(简化为异或门输出加圆圈)
  • 门电路特征:异或门符号基础上输出端增加小圆圈

1.8 逻辑门电路知识总结

第二章 02数据的表示和运算

门电路的变形画法

第二章 02数据的表示和运算

重点掌握画图和门电路逻辑运算特征

1.9 逻辑运算的优先级、常见公式

第二章 02数据的表示和运算

三种基本逻辑运算的优先级:非>与>或

电路设计应用:通过公式化简可优化电路结构,例如用分配律将3个门电路简化为2个

1.10 补充:芯片制程

第二章 02数据的表示和运算
  • 制程定义:指晶体管栅极宽度(如10nm制程即栅极宽10nm)
  • 技术影响:
    • 制程越小→晶体管尺寸越小
    • 单位面积晶体管数量更多→实现更复杂功能
    • 功耗更低
  • 尺寸对比:10nm是头发丝直径(0.1mm=100,000nm)的1/10000
  • 关键设备:荷兰ASML公司生产的光刻机是实现纳米级制程的核心设备

二、数字电路基础知识 – 多路选择器&三态门

2.1 多路选择器

第二章 02数据的表示和运算

数据通常用实线表示、控制信号op用虚线表示

  • 基本结构:包含多个输入(k个)、单个输出(n bit)和控制信号(m bit),英文缩写为MUX(Multiplexer)
  • 工作原理:根据控制信号的值选择其中一个输入通过并输出,其他输入被阻断,类似”守门员”功能
  • 图形表示:梯形符号表示,宽边为输入端,窄边为输出端,控制信号用虚线箭头标注在梯形腰部
  • 控制信号位数:当有k个输入时,控制信号位数m⩾⌈log⁡2k⌉bit(例如8个输入需要3位控制信号)
  • 信号表示:控制信号常用”op”表示(operation缩写),数据信号用实线表示,控制信号多用虚线表示

2.2 多路选择器例子

第二章 02数据的表示和运算
  • 四输入MUX:
    • 控制信号2位(00/01/10/11对应四个输入)
    • 当op=01时选择第二个输入通过
  • 二输入MUX:
    • 控制信号1位(0/1对应两个输入)
    • op=0选择左输入,op=1选择右输入

2.3 三态门

第二章 02数据的表示和运算
  • 基本功能:单输入单输出的”守门员”,控制信号决定是否让输入通过
  • 工作状态:
    • 控制信号=1:输入直接通过
    • 控制信号=0:输出高阻态(相当于断开线路)
  • 图形表示:三角形符号,底边为输入,顶点为输出,腰部为控制信号端

高阻态

  • 电平特性:既非高电平(如5V)也非低电平(如1V),实际表现为0V
  • 电路效果:相当于物理断开连接线路,完全阻断信号传输
第二章 02数据的表示和运算

2.4 三态门vs非门

第二章 02数据的表示和运算
  • 核心区别:
    • 三态门有控制信号,可选择性阻断
    • 非门无控制信号,必定通过并取反
  • 变体形式:带圆圈的三态门会在通过时执行按位取反操作(1变0,0变1)
  • 图形识别:需通过是否存在控制信号端来区分二者

2.5 内容总结

第二章 02数据的表示和运算
  • 共同点:都作为数字电路中的信号控制部件
  • 差异点:
    • 多路选择器:多输入单输出,控制信号位数与输入数量相关
    • 三态门:单输入单输出,控制信号仅需1位

注:有的多路选择器可能会预留一个控制信号,用于拦截所有输入

第二章 02数据的表示和运算

三、加法器

第二章 02数据的表示和运算

3.1 加法器的基本功能

第二章 02数据的表示和运算
  • 运算本质:实现两个n位二进制数的加法运算,如示例中A=7(00000111)2​与B=12(00001100)2相加得到S=19(00010011)2
  • 输入输出结构:
    • 输入:被加数A和加数B各n位二进制数
    • 输出:n位和的二进制结果
  • 实现目标:用逻辑门电路构建n位加法器,完成二进制加法运算

3.2 一位的全加器(FA,full adder)

第二章 02数据的表示和运算

理解上述输出公式

第二章 02数据的表示和运算
第二章 02数据的表示和运算

3.3 n bit加法器

第二章 02数据的表示和运算
  • 构建方法:将n个一位全加器串联连接
  • 工作流程:
    • 被加数和加数的各位并行输入对应FA
    • 进位信号从低位向高位逐级传递
    • 最终输出n位和结果
第二章 02数据的表示和运算
  • 速度问题:
    • 进位信息是串行产生的,计算速度取决于进位产生的速度和传递的速度。位数越多,运算速度越慢。这种串行进位信息又称为行波进位
  • 并行加法器:支持n位数据并行输入但进位串行的结构(也称串行进位的并行加法器

3.4 并行进位的并行加法器

第二章 02数据的表示和运算
  • 工作原理:通过增加CLA部件同时产生所有进位信息,实现进位并行处理
  • 核心优势:相比串行进位加法器,运算速度显著提升
  • 特点:
    • 所有进位信息同时产生
    • 进位延迟几乎为零
    • 封装后与串行进位加法器图示相同

3.5 带标志位的加法器

设计目的:解决加法运算结果判断问题

第二章 02数据的表示和运算
  • 判断结果是否溢出(n位表示范围限制)
  • 判断结果是否为零(用于相等性比较)
  • 判断结果正负(用于大小比较)
第二章 02数据的表示和运算
  • OF(溢出标志)Overflow Flag
第二章 02数据的表示和运算
  • SF(符号标志)Sign Flag-直接取最高位
第二章 02数据的表示和运算
  • ZF(零标志)Zero Flag(无论是有符号还是无符号)
第二章 02数据的表示和运算
  • CF(进位标志)Carry Flag(用于无符号)
第二章 02数据的表示和运算

3.6 知识回顾

第二章 02数据的表示和运算
第二章 02数据的表示和运算

ZF 对有符号、无符号均成立

3.7 补充8bit无符号数和有符号数表示范围

第二章 02数据的表示和运算

3.8 用例子理解 Carry Flag 的作用

CF 标志与溢出的关系

CF(Carry Flag,进位 / 借位标志)直接反映 无符号数运算是否溢出

  • CF=1:表示运算产生了进位(加法)或借位(减法),结果超出无符号数范围 → 溢出
  • CF=0:表示无进位 / 借位,结果在无符号数范围内 → 未溢出

题目公式的简化理解
→ 无符号数运算时,看 CF 标志:1 是溢出,0 是没溢出

举个例子:

  • 8 位无符号数 255 + 1:加法后最高位进位,CF=1 → 溢出(结果应为 256,超出 8 位无符号范围)。
  • 8 位无符号数 100 + 50:结果 150,无进位,CF=0 → 未溢出。

四、算术逻辑单元ALU

第二章 02数据的表示和运算

学习目标:理解ALU在计算机中的作用、功能、实现原理及图示解读方法

重点掌握:ALU的功能分类、控制信号位数计算、标志位信息

简要了解:ALU的电路实现原理(非考试重点)

4.1 ALU = Arithmetic and Logic Unit 算术逻辑单元的作用

第二章 02数据的表示和运算
  • 核心地位:ALU是运算器的核心部件,而运算器与控制器共同组成CPU,加法器又是ALU的核心
  • 工作流程:
    • 控制器:解析指令并发出控制信号(包括发给运算器的信号)
    • 运算器:根据控制信号处理数据(通过ALU执行具体运算)
  • 组成关系:CPU→运算器→ALU→加法器(核心中的核心)
  • 运算器组成:
    • 通用寄存器组:存储参与运算的数据
    • ALU:实现算术/逻辑运算的组合逻辑电路
    • PSW寄存器:存储CPU状态和运算状态信息
  • 设计原理:所有运算(加减乘除)最终都基于加法实现

4.2 ALU的功能

第二章 02数据的表示和运算

重点

第二章 02数据的表示和运算
  • 图中ALU 11种功能,则需要4bit

功能说明:

求补码:将原码输入后输出对应补码,便于硬件实现加减运算

直送功能:数据不经处理直接输出(如输入0001则输出0001)

4.3 ALU的实现原理(最简单的模型)了解即可

第二章 02数据的表示和运算
  • 基础实现方案:
    • 并行设置多个功能电路(加法、乘法、与运算等)
    • 通过多路选择器(MUX)选择输出结果
    • 控制信号决定MUX的输出线路
  • 示例说明:
    • 2位控制信号可管理4种功能(00→加法,01→乘法等)
    • 封装后形成完整ALU模块

4.4 看懂AUL图示(超级重点)

第二章 02数据的表示和运算

ALU的运算数、运算结果位数与计算机的机器字长相同,可以说,ALU的运算数决定机器字长

PSW和FR是一个东西两个名字

4.5 ALU真题演练

第二章 02数据的表示和运算
  • 关键观察点:
    • ALU输入/输出位数(图示中为16位)
    • 控制信号来源(ALUop来自控制器)
    • 标志位输出(连接FR寄存器)
第二章 02数据的表示和运算

4.6 知识回顾

第二章 02数据的表示和运算

五、定点数的移位运算

第二章 02数据的表示和运算

分类:定点数移位运算分为算术移位、逻辑移位和循环移位三种类型

5.1 算数移位 – 十进制数小数点移位

第二章 02数据的表示和运算
  • 基本原理:通过改变数码位与小数点的相对位置来改变位权
  • 右移效果:小数点后移1位相当于×101×10^1×101,如9852.11→98521.1
  • 左移效果:小数点前移1位相当于÷101÷10^1÷101,如985.211→98.5211
  • 本质:算术移位可等价实现乘除法运算

5.2 原码的算数移位 – 左移、右移

第二章 02数据的表示和运算
第二章 02数据的表示和运算
  • 规则:符号位保持不变,仅对数值位进行移位
  • 右移操作:
    • 方法:高位补0,低位舍弃
    • 效果:相当于÷2(舍弃位为0时精确)
    • 示例:-20D右移1位得-10D(−20÷21
    • 精度问题:若舍弃位≠0会丢失精度如-5D右移1位得-2D而非-2.5D)
  • 左移操作:
    • 方法:低位补0,高位舍弃
    • 效果:相当于×2×(舍弃位为0时精确)
    • 溢出问题:若舍弃位≠0会出现严重误差(如-40D左移3位得-32D而非-160D)

定点小数同整数算数位移结论一致

第二章 02数据的表示和运算

5.3 反码的算数移位

第二章 02数据的表示和运算
  • 正数处理:与原码完全相同(左/右移均补0)
  • 负数处理:
    • 补位规则:无论左移右移都补1
    • 原因:负数反码的数值位与原码相反

5.4 补码的算数移位

第二章 02数据的表示和运算
  • 正数处理:与原码完全相同(左/右移均补0)
  • 负数处理:
    • 右移:高位补1,低位舍弃
    • 左移:低位补0,高位舍弃
    • 原理:补码最右边的1及其右侧与原码相同,左侧与反码相同

5.5 算数移位总结

第二章 02数据的表示和运算
  • 正数统一:原码/反码/补码均补0
  • 负数差异:
    • 原码:左右移均补0
    • 反码:左右移均补1
    • 补码:左移补0,右移补1
  • 运算效果:左移相当于×2,右移相当于÷2

5.6 算数移位的应用举例

第二章 02数据的表示和运算
  • 硬件实现:通过移位和加法组合实现乘法

5.7 逻辑移位

第二章 02数据的表示和运算
  • 规则:
    • 右移:高位补0,低位舍弃
    • 左移:低位补0,高位舍弃
  • 本质:可看作无符号数的算术移位

5.8 逻辑移位的应用案例

第二章 02数据的表示和运算
  • 应用场景:RGB颜色值的存储组合
  • 实现方法:
    • 将R值(102)逻辑左移16位
    • 将G值(139)逻辑左移8位
    • 将B值(139)保持不变
    • 三者相加得到24位RGB值

5.9 循环移位

第二章 02数据的表示和运算
  • 基本循环移位
    • 移出的位填补到空缺位
    • 形成循环效果
  • 进位位循环移位:
    • 移出位存入进位位(CF)
    • 原进位位填补空缺位
    • 适用于多字节运算

5.10 知识点回顾

第二章 02数据的表示和运算

六、补码加减运算电路

6.1 n bit 加法器

第二章 02数据的表示和运算

6.2 补码加减运算电路

有符号数的加减运算

第二章 02数据的表示和运算

减法运算也可以用加法器实现:

对于减法:减数全部按位取反

无符号数的加减运算

第二章 02数据的表示和运算

6.3 补码加减法的溢出判断

第二章 02数据的表示和运算
第二章 02数据的表示和运算
第二章 02数据的表示和运算
第二章 02数据的表示和运算

七、定点数原码的乘法运算(重点)

第二章 02数据的表示和运算

7.1 乘法运算的思想(十进制)

第二章 02数据的表示和运算
  • 小数点处理:从结果最右端向左数6位(被乘数3位+乘数3位)确定小数点位置。

7.2 乘法运算的思想(二进制)

第二章 02数据的表示和运算
  • 确定小数点位置的方法:被乘数小数位数(4位)加乘数小数位数(4位)等于结果小数位数(8位)
  • 位积特性:二进制每位只有0或1,位积要么是被乘数本身,要么是全零。

硬件优势:仅需判断0/1决定是否累加,配合移位寄存器即可实现。

效率对比:相比十进制乘法,二进制无需乘法口诀表,硬件电路更简单。

7.3 机器实现几个问题

1、实际数字有正负,符号位如何处理?

答:符号处理用位异或运算符号位单独计算数值部分按无符号数处理。

2、乘积的位数扩大一倍,如何处理?

如:5位数相乘可能产生9位结果,超出寄存器容量。

处理方法:采用双字长存储或动态调整数据表示范围。ACC 和 MQ

3、4个位积都要保存下来最后统一相加?

答:采用累加器逐步相加替代全部存储,通过”加-移位”操作减少寄存器使用。

第二章 02数据的表示和运算

所有位积的加权求和可通过累加过程中的循环右移操作完成。

7.4 原码的一位乘法

符号位异或单独处理

数值位取绝对值进行乘法计算

第二章 02数据的表示和运算

7.5 回顾运算器的基本组成

第二章 02数据的表示和运算
  • ACC:累加器,存放操作数或运算结果。乘法时存放乘积高位。
  • MQ:乘商寄存器,乘除运算时存放操作数或结果。乘法时存放乘数和乘积低位。
  • X:通用操作数寄存器,存放被乘数。
  • ALU:算术逻辑单元,实现算术和逻辑运算。

7.6 原码一位乘法实现案例

初始阶段

第二章 02数据的表示和运算

遇到当前位为 1 的情况:(ACC)+(X) ->ACC,之后逻辑右移

第二章 02数据的表示和运算

遇到当前为 0 的情况 (ACC)+(0) ->ACC,逻辑右移,重复n(数值位)次

第二章 02数据的表示和运算

最终结果:

第二章 02数据的表示和运算
  • 运算步骤:
    • 检查MQ最低位:为1则ACC加被乘数,为0则加0
    • 每次加法后,ACC和MQ整体逻辑右移1位(高位补0)
    • 重复n次(n为数值位位数)
  • 注意事项:
    • 乘数符号位不参与运算
    • 可使用单符号位或双符号位
    • 最终结果应表示为原码机器数
  • 实例演示:
    • 初始:ACC=00.0000,MQ=01011,X=00.1101
    • 第1轮:MQ末位1→ACC+X=00.1101→右移得00.0110 1011
    • 第2轮:MQ末位1→ACC+X=01.0011→右移得00.1001 1101
    • 第3轮:MQ末位0→ACC+0=00.1001→右移得00.0100 1110
    • 第4轮:MQ末位1→ACC+X=01.0001→右移得00.1000 1111
  • 结果处理:
    • 绝对值结果:0.10001111
    • 符号位:1⊕0=1
    • 最终结果:[x⋅y]原=1.10001111
  • 整数与小数区别:
    • 小数:小数点固定在符号位后
    • 整数:小数点固定在数值位最后
    • 运算过程完全相同

7.7 原码一位乘法(手算模拟)

第二章 02数据的表示和运算

八、定点数补码乘法运算

8.1 补码一位乘法

第二章 02数据的表示和运算

补码一位乘法与原码一位乘法的区别

  • 加法操作差异:
    • 原码每次加法可能+0或+[|x|]原[|x|]_原[|x|]原​,由MQ最低位决定
    • 补码每次加法可能+0、+[x]补​或+[−x],由辅助位减去“MQ最低位”决定(结果为1/0/-1对应不同操作)
  • 移位方式差异:
    • 原码采用逻辑右移(高位补0)
    • 补码采用算术右移(符号位不变,高位补符号位)
  • 符号位处理:
    • 原码符号位单独异或确定,不参与运算
    • 补码符号位直接参与运算,结果自然体现符号

8.2 补码一位乘法的硬件构成

第二章 02数据的表示和运算
  • 寄存器扩展:
    • MQ寄存器扩展1位作为辅助位(共n+2位)
    • ACC和X寄存器同步扩展为双符号位
  • 数据存储规则:
    • 被乘数存储双符号位补码
    • 乘数存储单符号位补码(因MQ需保留辅助位)
  • 辅助电路:
    • 专用电路实现x补码到−x补码的快速转换
  • 移位机制:
    • 每次右移使MQ原最低位顶替辅助位
    • 算术右移时符号位保持不变

8.3 补码一位乘法(手算模拟)

第二章 02数据的表示和运算
  • 操作步骤:
    • 初始化:辅助位设为0MQ存储乘数补码
    • 每轮判断:根据辅助位-MQ最低位差值决定加法操作
    • 执行算术右移:符号位不变,数值位按符号补位
    • 最终轮次:第n+1次只加法不移位

8.4 知识回顾

第二章 02数据的表示和运算
  • 关键记忆点:
    • 补码乘法的”多一次加法”特性
    • 辅助位初始为0,通过右移动态更新
    • 算术右移时负数需补1(如第三轮结果11.1011→11.1101)
  • 易混淆点:
    • MQ”最低位”实际指参与运算位(非真正的物理最低位)
    • 最终加法需考虑乘数符号位(示例中y的符号位0参与运算)
  • 运算验证:
    • 示例结果[x⋅y]补=11.01110001对应真值-0.10001111

九、定点数原码除法运算

第二章 02数据的表示和运算

9.1 手算除法(十进制)

第二章 02数据的表示和运算

关键公式: x / y = a; 被除数/除数 = 商(余数b)

等价于: x = a * y +b

9.2 手算除法(二进制)

第二章 02数据的表示和运算

忽略小数点,每确定一位商,进行一次减法,得到4位余数,在余数末尾补0,再确定下一位商。

确定5位商即可停止(机器字长为5位)

9.3 运算器的基本组成

第二章 02数据的表示和运算

9.4 原码除法 – 恢复余数法

实现方法:上商 0/1,得到余数,余数末尾补0

符号处理:符号位单独通过异或运算确定

第二章 02数据的表示和运算
初始状态

数值部分取绝对值进行除法计算

寄存器初始化:

  • ACC寄存器存储被除数绝对值∣x∣=0.1011
  • 通用寄存器存储除数绝对值∣y∣=0.1101及其补码形式
  • MQ寄存器初始置零末位标记当前待确定的商位

补码准备:

  • [∣y∣]补=0.1101
  • [−∣y∣]补=1.0011(用于减法操作的补码加法实现)

运算原理

默认策略:计算机默认每次商1,通过余数符号判断是否需要修正

修正机制:若余数为负(符号位为1),则:

  • 将商由1改为0
  • 执行ACC + [∣y∣] 恢复正确余数

移位操作:每次确定商位后,ACC和MQ整体逻辑左移1位,低位补0

第二章 02数据的表示和运算
第二章 02数据的表示和运算

恢复余数

第二章 02数据的表示和运算

逻辑左移

第二章 02数据的表示和运算

循环计算机直接默认商1

第二章 02数据的表示和运算

若最后一步商余数为负,也需要恢复余数并商 0

第二章 02数据的表示和运算

小数点的位置

第二章 02数据的表示和运算

总结

第二章 02数据的表示和运算
  • 注意事项:
    • 终止条件:最后一步得到的余数若为负,仍需恢复余数并修正商
    • 余数处理:最终余数需乘以2−n(n=4时为例)
    • 硬件特点:计算机不具备直接比较功能,通过余数符号间接判断大小关系

9.5 恢复余数法(手算)

第二章 02数据的表示和运算

9.6 恢复余数法(优化)

第二章 02数据的表示和运算

9.7 原码除法:加减交替法

第二章 02数据的表示和运算
第二章 02数据的表示和运算

十、补码的除法运算

第二章 02数据的表示和运算
第二章 02数据的表示和运算

本网站原创文章版权归何大锤的狂飙日记所有。发布者:何大锤,转转请注明出处:何大锤的博客

(1)
何大锤的头像何大锤管理团队

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

2211932694

在线咨询: QQ交谈

邮件:hdcblog1999@163.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
网站建设中ing......