当前位置: 首页 > article >正文

C:算术移位和逻辑移位傻傻分不清楚

1.  算术移位与逻辑移位概念

算术移位指令对带符号数进行移位。

逻辑移位指令对无符号数进行移位。

算术左移、右移,逻辑左移、右移 如图所示 :

         这里有一个进位位C,它就是标志寄存器 (即状态寄存器,亦称程序状态字寄存器PSW)中的那个进位位,指示是否有进位或者借位,若有则该位为1,否则为0。

        逻辑左移跟算术左移完全一样。

        逻辑右移跟算术右移则不一样,逻辑右移的最高位在移出后补0,而在算术右移中,最高位(这里的最高位指整个编码的最高位,即有 符号数的符号位)不变,其他跟逻辑右移一样。 

2.  循环移位 

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

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

        在循环移位中,只有“带进位的循环右移”这种方式中,进位位C 才对移位后的结果产生影响,其他的进位位都是受影响(被 新移入的二进制位覆盖),这需要特别注意。


http://www.kler.cn/news/160982.html

相关文章:

  • 智慧农业技术解决方案:PPT全文32页,附下载
  • 两种做法——判断是否是二叉搜索树
  • 【Proteus仿真】【STM32单片机】简易计算器
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • 什么是堆内存?参数如何设置?
  • 【LeetCode】2621. 睡眠函数
  • ETLCloud详解,如何实现最佳实践及问题排查
  • 代码随想录算法训练营第五十八天 | 793.每日温度,496.下一个更大元素 I
  • LabVIEW开发自适应降噪ANC
  • vue的propsData
  • 04 ECharts基础入门
  • MySQL和MongoDB简介以及它们之间的区别
  • ThinkPHP6使用Validate验证表单字段唯一
  • 【每日一题】重新规划路线
  • 【C++初阶】六、类和对象(初始化列表、static成员、友元、内部类)
  • 脉冲压缩及MATLAB仿真
  • 数组常用方法
  • 剧本杀小程序搭建:打造线上剧本杀新体验
  • HTML 块级元素与行内元素有哪些以及注意、总结
  • EasyExcel如何读取全部Sheet页数据方法
  • leetcode刷题:611.有效三角形的个数(双指针实现)
  • C++中单引号‘‘和双引号““的区别
  • Linux内核上游提交完整流程及示例
  • 多人聊天室
  • Python实现广义线性回归模型(statsmodels GLM算法)项目实战
  • Oracle 查询语句限制只选择最前面几行,和最后面几行的实现方式。
  • GAN:WGAN前作
  • 【玩转TableAgent 数据智能分析】-- 数据分析不再是专业人士的专利
  • 如何使用Net2FTP轻松部署本地Web文件管理器并远程访问管理内网资源?
  • [⑦ADRV902x]: JESD204学习笔记