从0到1学会C中的左移和右移

从0到1学会C中的左移和右移从在代码里看见 gt gt lt lt 连这两个符号叫左移和右移都不知道是啥 到查了百度和问朋友终于是弄懂了它 接下来就和大家分享一下我的理解叭 首先举个小栗子 local a 10 gt gt 2 这个就叫 10 右移 2 位得出 a 我们把 10 称为左数 2 称为右数 需要位移的数 中间的 gt

大家好,我是讯享网,很高兴认识大家。

从在代码里看见>> << 连这两个符号叫左移和右移都不知道是啥
到查了百度和问朋友终于是弄懂了它
接下来就和大家分享一下我的理解叭
首先举个小栗子

local a = 10 >> 2 

讯享网

这个就叫10右移2位得出a
我们把10称为左数,2称为右数(需要位移的数),中间的>>或<<称为右移或左移
如何来运算这个a = 10 >> 2呢

第一步:

把左数转为二进制
10转二进制
讯享网然后将余数从下到上写,就是1010,这就是10的二进制

第二步:

把10得二进制1010右移两位
在这里插入图片描述
把1010右移两位就是字面意思,最后那两位右移出去了就不要它了,然后左边补0!!(0也相当于没有哈哈哈)

第三步:

把0010二进制十进制,也就是2
所以!! 10得右移两位结果是2,也就是 a = 2

那么左移呢?

讯享网local a = 10 << 2 
第一步:

同样把左数转换成二进制,10得二进制是1010

第二步:

在这里插入图片描述
把1010左移两位还是字面意思,左移多少位就给它加几位0

第三步:

现在我们得到的二进制是
然后把二进制十进制,也就是2
所以!! 10得右移两位结果是2,也就是 a = 40

负数十进制转二进制

第一步:

先把负数取绝对值(变正数)然后转二进制,这个大家都会了吧

第二步:

然后把取到的二进制转反码!!
例如二进制是的反码就是010111
但是由于他是负数,所以最高位,0001 0111的最左边这个0要变成1所以10 的二进制的反码是

第三步:

补码!
就是给加1,由于二进制里面只有0和1,所以加1的进位,变成
在这里插入图片描述

C语言中的左移表示乘以2,右移表示除以2,这是由计算机工作原理导致的

最后教大家一个简单的方法
就是!
Windows自带的计算机!
居然还有程序员计算机!
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

管你看没看懂,我看得懂就完事了
在这里插入图片描述

小讯
上一篇 2025-02-21 19:15
下一篇 2025-02-11 16:13

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/66960.html