题目
37.(填空题,1.0分)SHR指令将IN中的变量按位向右移动参数N指定的位数,将结果保存在OUT指定的变量中,如果IN中的变量为无符号数据类型,则用____填充移位操作清空的位置;如果参数IN中的变量为有符号数据类型,则用____填充移位操作清空的位置。(填空题)第1空
37.(填空题,1.0分)
SHR指令将IN中的变量按位向右移动参数N指定的位数,将结果保存在OUT指定的变量中,如果IN中的变量为无符号数据类型,则用____填充移位操作清空的位置;如果参数IN中的变量为有符号数据类型,则用____填充移位操作清空的位置。
(填空题)
第1空
题目解答
答案
SHR指令按位右移时,填充方式取决于数据类型:
1. **无符号数据类型**:右移时,高位空位用**零**填充。例如,无符号数$00110100_2$右移2位变为$00000110_2$,左侧补零。
2. **有符号数据类型**:右移时,高位空位用**符号位**填充。例如,有符号数$10110100_2$(负数)右移2位变为$11101101_2$,左侧补符号位1以保持符号不变。
**答案**:
第1空:零
第2空:符号位
解析
本题考查SHR指令在不同数据类型下右移操作的填充规则。解题核心在于理解:
- 无符号数据类型右移时,高位空位用零填充;
- 有符号数据类型右移时,高位空位用符号位填充(即算术右移)。
无符号数据类型
- 逻辑右移:所有位向右移动,高位补零,低位移出的部分被舍弃。
- 示例:无符号数 $00110100_2$ 右移2位后变为 $00000110_2$,左侧补两个零。
有符号数据类型
- 算术右移:所有位向右移动,高位补符号位(符号位为最高位的值),低位舍弃。
- 示例:有符号数 $10110100_2$(符号位为1)右移2位后变为 $11101101_2$,左侧补两个1以保持符号不变。