MIPS中为什么没有逻辑左移算术左移移指令

2016年上半年软件设计师上午试卷

考試中心《2016年上半年软件设计师上午试卷》在线考试

试卷年份2016年上半年

移位指令中()指令的操作结果相当于对操作数进行乘2操作

A(仅供參考,欢迎评论交流)


信管网解析: 普通会员无法查看试题解析[]


逻辑移位:移位产生的空位由0来補充比如11100右移移位变为01110

算术右移有两种可选的方案:左边移入的位由0补充,或者由符号位来补充这两种实现依赖于编译器。11100右移移位結果可能是01110或者11110

在程序中尽量不使用有符号数的右移操作,这样会使得程序的可移植性变差

对于有符号数右移,下面的代码可以判断編译器采用的逻辑右移还是算术右移

}由于有符号数左移操作会把符号位移掉然后在最右边加上0,这可能会使得一个负数变成一个正数

丅面的程序说明了这一点。

逻辑左移算术左移移和算术右移主要用来进行有符号数的倍增、减半;

逻辑左移和逻辑右移主要用来进行无符号数的倍增、减半

逻辑左移算术左移移和逻辑左移算术左迻移虽然方式是一样的,但他们表示的移位后数的范围是不一样的有符号数左移(逻辑左移算术左移移)位后的范围是-128——127【指8位】.而無符号数(逻辑左移算术左移移)左移的范围是0——255.【指8位】

其实不管是哪种移位(上述的),均要考虑移位后的范围我们这学期也学微机,刚好学到这希望对你的理解有所帮助,

循环的话应该考虑是移位出去的加回去还

我要回帖

更多关于 算术左移 的文章

 

随机推荐