• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

【C#】关于左移/右移运算符的使用

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

吐槽先~为什么我的老师大学时候没教过我这东西  - -、

 

继续送栗子:

比如 “(1+2)<<3”

你们猜等于几~

        Debug.Log((1+2)<<3)之后输出的是“24”。

为什么呢~

因为呀因为呀  “

  “左移/右移” 是指对应的二进制向左右移位,执行1+2=3,就变成了3<<3。即:把3对应的二进制向左移3位。

  3对应的二进制:11   向左移3位变成 11000

  二进制11000不就是十进制的24嘛~~~”

 

继续拓展一下思维

     3>>1<<1 =?  一般人会想呀先向右移又向左移回来,结果肯定是3不会变呀~~~真·图样图森破!

        自己算一下就会发现:

        一个数向右移动一位后,所对应的二进制最后一位无论是1还是0,都已经没意义了,因为它消失了呀。然后,再向左移动一位,神奇的又增加的那一位又用0补上了。

        所以,3变成2进制的“11”向右移动一位变成“1”,再向左移动一位变成了“10”,也就是2。

        呵呵鉴于此刻无意间发现的这个惊天大秘密,以后再求小于等于某个数的偶数,就可以这样写嘛~

        当然大家也可以继续开脑洞拓展一下,直到玩坏它。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#Unrecognizedconfigurationsectionsystem.serviceModel发布时间:2022-07-10
下一篇:
C#只移除最后一个字符发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap