)
前言在数字电路与计算机组成原理中加法是最基础的运算而乘法是高频常用运算。很多初学者疑惑计算机没有专门的乘法口诀到底怎么实现二进制乘法而在数字运算中乘法是比加法更复杂、但底层逻辑完全依托加法的运算。很多初学者疑惑计算机没有专门的乘法口诀到底怎么实现二进制乘法其实计算机乘法的核心逻辑超级简单乘法 移位 累加加法。本文从零讲解无符号整数乘法原理不堆砌复杂公式从十进制类比、二进制规则、移位逻辑、硬件实现逐层拆解适配零基础、期末复习、计组入门学习前置基础了解二进制加法、一位全加器基本原理即可。一、先搞懂人类乘法 vs 计算机乘法1. 十进制手工乘法逻辑我们日常计算十进制乘法核心是逐位相乘、错位相加。举个例子$$12 \times 34$$1. 乘数个位4 × 被乘数12得到 48不偏移2. 乘数十位3 × 被乘数12得到 36向左错位1位相当于×103. 所有错位结果累加得到最终结果计算机的二进制乘法逻辑和人类手工乘法完全一致只是规则更简单2. 二进制乘法独有特性二进制只有 0 和 1 两个数字这让二进制乘法拥有一个绝杀级简化规则0 乘任何数 01 乘任何数 原数也就是说二进制乘法不需要乘法口诀只需要判断乘数当前位是0还是1决定「不加数」或者「加原数」再配合错位移位即可二、无符号二进制乘法核心规则1. 核心定义无符号整数没有正负号所有二进制位均为数值位取值范围 ≥0是计算机最基础的乘法运算类型。核心原理逐位判断、移位、累加2. 运算标准步骤设被乘数为 M乘数为 Q均为n位无符号二进制数1. 从乘数最低位开始逐位遍历2. 若当前位为1将被乘数 M 左移对应位数与结果累加3. 若当前位为0跳过直接移位不累加4. 遍历完所有位数后累加结果即为最终乘积3. 关键二进制左移 乘以2二进制中数字左移1位等价于十进制 ×2左移n位等价于 ×$$2^n$$。这是乘法能通过移位实现的核心依据完美对应十进制的错位进位。三、实战演算手把手算无符号二进制乘法我们用一个实例完整走一遍流程彻底吃透逻辑示例计算 无符号 $$1011 \times 1101$$二进制对应十进制$$11 \times 13 143$$用于验证结果正确性步骤拆解被乘数 M 1011乘数 Q 11011. 取乘数最低位Q0 1 → 有效直接取原数 1011左移0位2. 次低位 Q1 0 → 无效跳过不累加3. 第三位 Q2 1 → 有效被乘数左移2位 → 1011004. 第四位 Q3 1 → 有效被乘数左移3位 → 10110005. 累加所有有效移位结果$$1011 101100 1011000 10001111$$二进制 $$10001111 143$$和十进制计算结果完全一致四、硬件电路实现基于加法器的乘法器掌握了二进制乘法的运算逻辑后我们可以进一步拆解其底层硬件实现这也是CPU乘法单元的基础原型完全依托基础数字电路搭建而成。1. 所需核心器件n位全加器阵列负责累加移位后的被乘数移位寄存器实现被乘数左移、乘数右移逐位判断选择开关电路判断乘数当前位控制是否累加2. 硬件工作流程以最基础的串行移位乘法器为例1. 初始化累加寄存器清零存入初始结果02. 乘数寄存器右移每次取出最低位判断3. 若取出位为1将当前移位后的被乘数通过多位加法器与累加寄存器数值相加4. 若取出位为0加法器不工作累加值保持不变5. 被乘数左移1位乘数继续右移循环往复6. 遍历完所有乘数位数后累加寄存器中即为最终乘积3. 核心本质硬件乘法器 移位电路 多位加法器阵列完全依托门电路加法单元实现没有额外复杂运算模块。五、全文总结1. 二进制无符号乘法无复杂运算核心公式乘法 移位 累加加法2. 依托二进制特性仅需判断乘数位的0和1大幅简化硬件逻辑3. 硬件层面完全基于加法器阵列实现是数字电路中加法运算的高阶拓展应用4. 无符号乘法是后续有符号乘法、乘法器优化阵列乘法器的基础。