题目
定点数的原码乘法是通过( 来实现的。A. 加法和算术右移B. 加法和算术左移C. 加法和逻辑右移D. 减法和算术右移
定点数的原码乘法是通过( 来实现的。
A. 加法和算术右移
B. 加法和算术左移
C. 加法和逻辑右移
D. 减法和算术右移
题目解答
答案
C. 加法和逻辑右移
解析
本题考查定点数原码乘法的实现方式,需明确原码乘法的核心操作及移位规则。
1. 原码乘法的基本原理
原码乘法的运算规则是:符号位单独处理(异或得到结果符号),数值位直接相乘(类似手工乘法)。数值位相乘的过程中,每次根据乘数的某一位是否为1,决定是否将被乘数加到积中,然后右移一位(完成进位传递)。
2. 移位规则的选择
- 算术右移:带符号位的移位,右移时符号位保持不变,用于有符号数的移位(如除法)。
- 逻辑右移:无符号数的移位,右移时直接补0,不考虑符号位。
原码的数值位是绝对值,符号位单独处理,因此数值位相乘时的右移只需补0(逻辑右移)即可,无需考虑符号位的扩展。
3. 选项分析
- A. 加法和算术右移:算术右移用于有符号数(如补码),原码数值位无需符号扩展,错误。
- B. 加法和算术左移:左移会导致数值增大,不符合乘法“逐步累加后缩小”的逻辑,错误。
- C. 加法和逻辑右移:逻辑右移补0,符合原码数值位相乘后的移位需求,正确。
- D. 减法和算术右移:乘法无需减法,错误。