下列关于整数乘法运算的叙述中,错误的是( )。
A. 用阵列乘法器实现乘运算可以在一个时钟周期完成
B. 用 ALU 和移位器实现的乘运算无法在一个时钟周期内完成
C. 变量与常数的乘运算可编译优化为若干条移位及加/减运算指令
D. 两个变量的乘运算无法编译为移位及加法等指令的循环实现
b
整数乘法运算相关叙述的正误判断
用户登录可进行刷题及查看答案
选项分析
正确。阵列乘法器(如布斯阵列乘法器)通过并行逻辑电路直接实现乘法运算,所有位的运算同时进行,因此可在一个时钟周期内完成乘法操作,属于组合逻辑电路。
正确。ALU(算术逻辑单元)结合移位器实现乘法时,通常采用迭代算法(如原码一位乘法、补码乘法),需要逐位处理乘数的每一位,并通过移位和加法分步完成。这种方式属于时序逻辑电路,需多个时钟周期才能完成运算。
C. 变量与常数的乘运算可编译优化为若干条移位及加 / 减运算指令
正确。例如,当变量乘以常数 k 时,若 k 可表示为 \(2^n \pm 2^m\) 的形式(如 \(12 = 8 + 4 = 2^3 + 2^2\)),编译器可将乘法优化为移位(左移对应 \(2^n\))和加法(或减法)操作。这种优化能减少指令复杂度,提高执行效率。
错误。两个变量的乘法运算可通过循环结合移位和加法实现。例如,对于无符号数乘法,可逐位检查乘数的每一位,若为 1 则将被乘数左移对应位后累加,本质是模拟手工乘法的过程。编译器可将此类乘法编译为循环结构,通过移位和加法指令完成运算(如 ARM 架构中的乘法指令底层可能采用此方式)。
结论
错误的叙述是 D。
登录后提交答案