移位运算符的含义_右移运算符

移位运算符的含义_右移运算符【C操作符详解】之 移位操作符首先,给大家说明一点,移位操作符的操作数只能是整数,移位移动的是二进制位(当然整数在内存中存的是补码)。 🌁 1.左移操作符(<<)首先我们来看左移操作符,<<:左移操作

【C操作符详解】之 移位操作符   首先,给大家说明一点,移位操作符的操作数只能是整数,移位移动的是二进制位(当然整数在内存中存的是补码)。 🌁 1.左移操作符(<<)   首先我们来看左移操作符,<<:   左移操作符的移位规则是:   左边抛弃、右边补0   我们来举个例子:代码语言:javascript复制   大家可以按照上面的移动规则自己算一下,看看结果是什么。   好,那现在我们一起来分析一下:
在这里插入图片描述在这里插入图片描述   那结果是不是20 呢?我们来看一下:
在这里插入图片描述在这里插入图片描述   另外提醒一下,对a进行移位之后,a在不被赋值的情况下(a=a<<1),a自身的值不会发生变化。   我们可以打印一下看看:
在这里插入图片描述在这里插入图片描述   好,刚才是对正数进行移位,我们再来移一个负数试试:代码语言:javascript复制   一起分析一下:
在这里插入图片描述在这里插入图片描述   是-4吗?
在这里插入图片描述在这里插入图片描述   做了两道题之后,我们好像可以发现一个规律:   对整数左移一位,相当与乘了一个2:   10左移一位结果是20; -2左移一位结果是-4;   那左移操作符我们学会了,接下来我们来看右移操作符。⛄️ 2.右移操作符(>>)   对于右移操作符,它的移位规则分为两种:(1)算术右移   右边丢弃,左边补原符号位   上例子:代码语言:javascript复制   在这里给大家提一下,在我使用的vs2022这个编译器上采用的就是算术右移(大部分编译器都是算术右移)。   那我们按照算术右移来分析一下结果是什么:
在这里插入图片描述在这里插入图片描述   看看vs2022的结果:
在这里插入图片描述在这里插入图片描述   整数算术右移一位相当于除以2并向下取整。(大家可以自己多试几个)   这是算术右移,接着我们看逻辑右移。(2)逻辑右移   右边丢弃,左边补0   那还是这个代码:代码语言:javascript复制   现在我们用逻辑右移来分析一下:
在这里插入图片描述在这里插入图片描述   我们看看转换为10进制是几:
在这里插入图片描述在这里插入图片描述   因为我们的编译器是算术右移,所以没法验证,大家知道就行了   最后,再给大家提醒一点:
在这里插入图片描述在这里插入图片描述   警告⚠ :   对于移位运算符,不要移动负数位,这个是标准未定义的。   比如:
在这里插入图片描述在这里插入图片描述   最后呢要给大家说明一下:   左移右移一定是向左、向右两个方向移动吗? 左移其实是向高位移动,右移其实是向低位移动,只不过一般情况下左边就是高位,右边就是低位,所以起名为左移右移,符合我们的正常习惯。   以上就是移位操作符的全部内容,欢迎大家指正!!!

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/30444.html

(0)
上一篇 2024年 9月 11日 下午11:16
下一篇 2024年 9月 11日 下午11:20

相关推荐

关注微信