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

继续送栗子:

比如 “(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。

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

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

【C#】关于左移/右移运算符的使用的更多相关文章

  1. 位运算 - 左移右移运算符 >>, <<, >>>

    1-左移运算符m<<n,表示把m左移n位.左移n位的时候,最左边的n位数将被丢弃,同时在最右边补上n个0.例如: 00001010<<2 = 00101000 10001010 ...

  2. java左移右移运算符详解

    在阅读源码的过程中,经常会看到这些符号<< ,>>,>>>,这些符号在Java中叫移位运算符,在写代码的过程中,虽然我们基本上不会去写这些符号,但需要明白这些 ...

  3. Java_按位与&,按位或,取反,左移,右移运算符

    //按位与运算& System.out.println(0&0);//0 System.out.println(0&1);//0 System.out.println(1&am ...

  4. java左移右移运算符

    http://blog.csdn.net/dandanteng/article/details/7433531 首先要明白一点,这里面所有的操作都是针对存储在计算机中中二进制的操作,那么就要知道,正数 ...

  5. Java移位运算符详解实例——左移位运算符>>、带符号的右移位运算符>>

    移位运算符也针对二进制的“位”,它主要包括:左移位运算符(<<).右移位运算符(>>>).带符号的右移位运算符(>>). 1.左移运算符左移运算符用“< ...

  6. C语言之左移和右移运算符

    C语言中的左移和右移运算符移位后的结果老是忘记,最近在刷有关位操作的题目,正好整理下:   1. 左移运算符(<<) 左移运算符是用来将一个数的各二进制位左移若干位,移动的位数由右操作数指 ...

  7. 【转载】c语言数据的左移右移

    原文地址:http://www.cnblogs.com/myblesh/articles/2431806.html 由于在飞控程序中执行效率对程序的影响相当大,所以一个好的运算效率很重要.左移右移比单 ...

  8. java中的左移 右移

    java移位运算符:<<(左移).>>(带符号右移)和>>>(无符号右移). 1. 左移运算符 左移运算符<<使指定值的所有位都左移规定的次数. ...

  9. 异或运算符(^)、与运算符(&)、或运算符(|)、反运算符(~)、右移运算符(>>)、无符号右移运算符(>>>)

    目录 异或(^).异或和 的性质及应用总结 异或的含义 异或的性质:满足交换律和结合律 异或的应用 按位 与运算符(&) 按位 或运算符(|) 取 反运算符(~) 右移运算符(>> ...

随机推荐

  1. WLAN配置SKC

    1.关于SKC WLC支持粘滞密钥缓存(Sticky Key Caching,SKC). 通过SKC,客户端为其关联的每个AP接收并存储不同的PMKID. AP还维护发布给客户端的PMKID数据库. ...

  2. ISE主备注册和同步

    Synchronize Primary and Secondary Cisco ISE Nodes You can make configuration changes to Cisco ISE on ...

  3. linux下postgres创建hive数据库

    操作步骤 #登录 [root@xxx01 ~]# su postgres bash-4.2$ psql -U postgres could not change directory to " ...

  4. 【PAT甲级】1065 A+B and C (64bit) (20 分)(大数溢出)

    题意: 输入三个整数A,B,C(long long范围内),输出是否A+B>C. trick: 测试点2包括溢出的数据,判断一下是否溢出即可. AAAAAccepted code: #defin ...

  5. 「Luogu P5368 [PKUSC2018]真实排名」

    PKUSC签到题 题目大意 给出一个长度为 \(N\) 的序列,序列中有 \(K\) 个数会乘二,对于每个数计算在乘二后大于等于这个数的个数与乘二前没有发生变化的方案数. 分析 思路很清晰,可以将答案 ...

  6. 第二节: Vuejs常用特性1

    一. 常用特性 1. 表单元素 通过 v-model指令绑定 输入框.单选/多选框.下拉框.文本框 2. 表单域修饰符 (1) .number:转换成数值,如果输入的是非数字字符串时,无法进行转换 ( ...

  7. ThinkPHP5 动态生成图片缩略图

    需求场景 不同终端(PC端.手机端.平板),不同界面(列表页.详情页),对图片大小的要求不一样, 如果所有场景下都使用同一尺寸的图片,势必对会网络带宽及服务器性能造成一定的影响,由此需要服务器端能够根 ...

  8. pikachu-字符型注入(get) #手工注入

    1.检测注入类型 http://127.0.0.1/pikachu-master/vul/sqli/sqli_str.php?name=1&submit=%E6%9F%A5%E8%AF%A2 ...

  9. centos上正式环境邮件发送失败问题

    用celery异步发送邮件的时候遇到一个问题: 能接收到任务,但是就是执行不了, 也不报错 发现可能是settIngs.py里设置的端口有问题, 现在设置的端口是25, 改成465, 并且把ssl打开 ...

  10. 在abp core中出现运行项目时EF获取到的appsetting.json或者appsettings.Production.json中的连接字符串为空

    原因:有可能是生成的bin或者debug文件夹下没有将appsetting.json或者appsettings.Production.json文件生成过去 解决方法:手动拷贝过去,或者设置成自动生成过 ...