加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

算术移位和逻辑移位的区别(转)

(2013-07-10 13:42:29)
分类: DSP
//该内容来自百度文库


1.  算术移位与逻辑移位 



   算术移位指令对带符号数进行移位。逻辑移位指令对无符号数进行移位。算术左移、右移,逻辑左移、右移 

的图示如下 


这里有一个进位位C,它就是标志寄存器 (即状态寄存器,亦称程序状态字寄存器PSW)中的那个进位位,指 

示是否有进位或者借位,若有则该位为1,否则为0。逻辑左移跟算术左移完全一样。而逻辑右移跟算术右移则 

不一样,逻辑右移的最高位在移出后补0,而在算术右移中,最高位(这里的最高位指整个编码的最高位,即有 

符号数的符号位)不变,其他跟逻辑右移一样。 


2.  循环移位 

   另外还有循环移位,分为带进位位C 和不带进位位C 两种 

      注意,在循环移位中没有算术、逻辑之分,只有是否带进位位之分,不要搞混淆 。在循环移位中,只 

   有“带进位的循环右移”这种方式中,进位位C 才对移位后的结果产生影响,其他的进位位都是受影响(被 

   新移入的二进制位覆盖),这需要特别注意。 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有