推荐答案
测试一下
题目
在有符号数的乘法运算中,8比特有符号数乘以12比特有符号数,运算结果用多少比特的有符号数表式则既不会溢出也不会浪费__________
A 20
B 18
C 21
D 19
参考答案与知识点
参考答案
正确答案是 D 19。
对于有符号数乘法,结果位数的确定需要同时考虑不会溢出和不会浪费。两个有符号数相乘,结果的位数通常等于两个操作数的位数之和减1,这是因为乘积的符号位可以合并,无需额外扩展。具体到本题:8比特有符号数范围为-128~127,12比特有符号数范围为-2048~2047。乘积绝对值最大可能值为(-128)×(-2048)=262144,或 127×2047=259969,最大绝对值为262144。262144 = 2^18,表示它需要18位数值位加1位符号位,因此最少需要19位有符号数表示,范围-262144~262143完全覆盖所有乘积。若采用20位(A选项),则不会溢出但浪费了1位;若采用18位(B选项),则最大绝对值262144超过了18位有符号数的表示范围-131072~131071,会发生溢出;21位(C选项)同样浪费。只有19位既不会溢出(能够表示所有可能乘积)也不会浪费(恰好使用最小必要位数)。因此正确选项为19位。
涉及知识点
- 有符号数乘法结果位数确定规则
- 有符号数表示范围计算
- 乘积最大绝对值的估算方法
- 有符号数乘法中符号位合并原理
- 溢出与位宽浪费的平衡