You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于MIPS32逻辑左移sll、算术右移sra十六进制运算的疑问

MIPS32移位运算题目解析

核心运算规则

  • 逻辑左移(sll):无符号移位,将二进制位整体左移指定位数,右侧空出位补0,左侧移出的位直接丢弃,运算等价于无符号数乘以2的n次方(n为移位位数)
  • 算术右移(sra):有符号移位,将二进制位整体右移指定位数,左侧空出位补原数的最高位(符号位,正数补0、负数补1),右侧移出的位直接丢弃,运算等价于有符号数除以2的n次方(n为移位位数)

第一条指令sll $t2, $t1, 3运算过程

已知初始值$t1 = 0x77777777,32位二进制展开为:

0111 0111 0111 0111 0111 0111 0111 0111
最高位(第31位)为0,属于无符号正数

左移3位后,左侧最高3位丢弃,右侧补3个0,得到新的32位二进制:

1011 1011 1011 1011 1011 1011 1011 1000

转换为十六进制结果为0xBBBBBBB8,和你观察到的现象一致:原每一位十六进制7(对应二进制0111)移位后变为B(对应二进制1011),最低位补8(对应二进制1000)。


第二条指令sra $t2, $t0, 2运算过程

已知初始值$t0 = 0x88888888,32位二进制展开为:

1000 1000 1000 1000 1000 1000 1000 1000
最高位(第31位)为1,属于有符号负数

算术右移2位时,左侧补2个符号位1,右侧最低2位丢弃,得到新的32位二进制:

1110 0010 0010 0010 0010 0010 0010 0010

转换为十六进制结果为0xE2222222,和你观察到的现象一致:最高位变为E(对应二进制1110),其余位均为2。


内容的提问来源于stack exchange,提问作者user16951674

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 06:24:00