专栏首页开发与安全汇编语言/C51/C语言/C++中左移<<、右移>>的不同

汇编语言/C51/C语言/C++中左移<<、右移>>的不同

汇编:

1.对于51单片机:RLC A;即将累加器ACC中内容左移1位,最低位被CY原始值替代,最高位移入进位标志CY

  中,同理还有RRC A。

具体使用:MOV A,#0FFH;

CLR C;

  RLC A;

2.对于8086:

(1)左移:SHL/SAL DST CNT 移位时操作数的最低位将移入0,最高位移入CF中,若左移若干位,则CF中只保留最后一次移出的内容。

(2) 右移:分为逻辑右移与算术右移。逻辑右移即SHR,用法与SHL同;算术右移即SAR,移位时操作数的最高位移入的是它原来的值,即最高位保持不变,最低位同样移入CF,主要用于带符号数的右移。

(3)循环移位:ROR/ROL/RCR/RCL DST CNT 类似51的移位指令,不过可以一次操作多位移动。

C51:

1.在C51中操作符为"<<",每执行一次左移指令,操作数最高位移入CY,CY中本来的数丢失,最低位补0,其他位依次向左移动1位。右移指令类同。

2.循环左移:使用C51库函数自带的 unsigned char _crol_(unsigned char c,unsigned b);实现将字符C循环左移b位,跟8086汇编的循环移位类同,同样右移函数为_cror_;

标准C:

1.">>",C语言中的右移运算,一般情况下是高位补零,但在处理有符号数的时候会因计算机系统的不同而不同。有符号数高位是零,则右移时高位补零;如果是负数即高位是1,那么有的系统会移入1(移动几位就补几个1),称算术右移(大部分系统),有的会移入0,称逻辑右移。

2."<<",C语言中的左移运算,无论是有符号数还是无符号数都是按照逻辑左移来操作,即向左移动若干位,低位补0即可。

C++:

">>"和"<<"运算符如果没有被重载的情况下使用与标准C相同,如果被重载如输入输出流的操作,则变成输入输出操作符,如cout<<xxx; cin>>yyy; 当然也可以被重载为其他的操作。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据结构:程序加图示分析单链表的插入和删除操作

    下图展示了单链表的基本结构: ? head指针是链表的头指针,指向第一个节点,每个节点的next指针域指向下一个节点,最后一个节点的next指针域为NULL,在...

    s1mba
  • 数据结构:双向链表实现队列与循环链表

    一、双向链表(double linked list)如图26.5,是在单链表的每个结点中,再设置一个指向其前驱结点的指针域。双向链表的基本操作与单链表基本一样,...

    s1mba
  • linux网络编程之POSIX 消息队列 和 系列函数

    一、在前面介绍了system v 消息队列的相关知识,现在来稍微看看posix 消息队列。 posix消息队列的一个可能实现如下图: ? 其实消息队列就是一个可...

    s1mba
  • Python 简明手册

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    云雀叫了一整天
  • 不用键盘也能玩超级玛丽!当乐高马里奥变身遥控器,真‧手动控制

    这不,国外有个小哥做了一个真‧手动控制的“马里奥遥控器”,只见他在电脑前拿着马里奥上下指挥,游戏中的马里奥就能随之跳跃从而避开障碍物。

    大数据文摘
  • js 的5个不良编码习惯,现在就改掉吧

    在这篇文章中,我描述了JavaScript中常见的5种不良编码习惯。重要的是,本文会给出一些可行的建议,如何的摆脱摆脱这些习惯。

    前端小智@大迁世界
  • 5 个 JS 不良编码习惯,你占几个呢

    在这篇文章中,我描述了JavaScript中常见的5种不良编码习惯。重要的是,本文会给出一些可行的建议,如何的摆脱摆脱这些习惯。

    前端小智@大迁世界
  • python入门教程 python零基础网络爬虫:抓取4A级猎头公司数据

    所以我们可以使用python内置的模块去访问网址,这里可以用requests或者urllib,因为之前介绍过requests模块的使用,这里我们就不做过多阐述,...

    汤贤
  • 从Preact中了解React组件和hooks基本原理

    React 的代码库现在已经比较庞大了,加上 v16 的 Fiber 重构,初学者很容易陷入细节的汪洋大海,搞懂了会让人觉得自己很牛逼,搞不懂很容易让人失去信心...

    Nealyang
  • 非标自动化老兵经验谈:技术牛人如何炼成的

    非标自动化同业经常讲,提高自身设计水平的方法,无非是:多看书、多看标准件、多看展会、储备电气知识等。作为一个在非标行业自动化摸爬滚打多年的老兵,想在这些之外补充...

    机器人网

扫码关注云+社区

领取腾讯云代金券