从在代码里看见>> << 连这两个符号叫左移和右移都不知道是啥
到查了百度和问朋友终于是弄懂了它
接下来就和大家分享一下我的理解叭
首先举个小栗子
local a = 10 >> 2
讯享网
这个就叫10右移2位得出a
我们把10称为左数,2称为右数(需要位移的数),中间的>>或<<称为右移或左移
如何来运算这个a = 10 >> 2呢
第一步:
把左数转为二进制

讯享网然后将余数从下到上写,就是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自带的计算机!
居然还有程序员计算机!



管你看没看懂,我看得懂就完事了

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