在面试或者平时看源码或者其他的什么的时候经常看到<< >> 这种运算,虽然大学学过什么位移但是你懂得,网上看了很多人的讲解,最后汇总下:
比如num是40 (10进制) 对应的二进制为: 101000 = 2的5次方x1+2的4次方x0+2的3次方x1+2的2次方x0+2的1次方x0+2的0次方x0 (二进制转换为十进制方法原始方法)
<< 左移一位(左移一位是相对于二进制来说的,如果是十进制数转为二进制后左一位后在转为十进制数)
过后对应的二进制:1010000 = 2的6次方x1+2的5次方x4+2的4次方x1+2的3次方x0+2的2次方x0+2的1次方x0+2的0次方x0
= (2的5次方x1+2的4次方x4+2的3次方x1+2的2次方x0+2的1次方x0+2的0次方x0)x2=40x2
同样,如果左移两位就是2的平方,3位2的3次方···,这样推算结果就是左移几位就是原来的十进制数乘以2的多少次方,比如40左移3位
结果就是40x2的3次方 = 320
右移就是除以2,哈哈,自己推算啦。这样有助于记忆。
1 << 5 二进制表示就是100000,十进制就是2的五次方32
1 << 4 二进制表示就是10000,十进制就是2的四次方16
希望能帮到你
本文章有一大部分引用别人的,在此表示感谢@MyEclipseJAVA2EE博主。
分享到:
相关推荐
JavaScript的位移运算符知识点 推荐初学者观看
主要介绍了JavaScript位移运算符(无符号) >>> 三个大于号 的使用方法详解的相关资料,需要的朋友可以参考下
d3.bisector(accessor)是一种指定参数accessor或者比较器函数返回一个二等分对象。返回的对象有left和right两个属性。分别类似于bisectLeft和bisectRight方法。 这个方法适用于对象数组而不适用于原始的简单数组。...
java基本类型转byte,设计原码、补码、反码、左右位移等知识,赚点积分
这是一个java程序,使用了中点位移法自动生成分形山,在上面还提供了一些注释,可以作为课程设计的参考资料
C语言运算符优先级 在C语言中,运算符优先级定义了表达式中运算符的计算顺序。当一个表达式中有多个运算符时,高优先级的运算符会先被...7. **位移运算符 `和 `>>`**:进行位左移和位右移操作。 8. **关系运算符 `<`
详解凹凸、法线、视差、位移贴图 via 毛毛猪 详解凹凸、法线、视差、位移贴图 via 毛毛猪
动物位移小游戏Java实现,强行使用上了SQLite和MyBatis.zip动物位移小游戏Java实现,强行使用上了SQLite和MyBatis.zip动物位移小游戏Java实现,强行使用上了SQLite和MyBatis.zip动物位移小游戏Java实现,强行使用上...
Java基础:运算符、算数运算符、赋值运算符、关系运算符、逻辑运算符、条件运算符、位移运算符、条件运算符、下标运算符;整型字面量、浮点字面量、字符字面量、 布尔型字面量、引用字面量、类型字面量
3、位移运算符。4、比较运算符。5、逻辑运算符。6、各种赋值运算符。7、右位(后缀)单元运算符。 1、在这一级中,有++、–(做为前缀)、()、+、-(做为单元运算符)、!、~。这一级中都是单元运算符,除了其中那一对特殊...
程序用于根据变形前后点的坐标计算刚体位移值
杰佛伦Profinet位移传感器与S7-1500PLC连接组态方法步骤详解
BASE64编码和解码的JAVA实现。 太简单了。直接调用API实现的。 反正不要分,你们看着下吧。
所谓重载,就是重新赋予新的含义。函数重载就是对一个已有的函数赋予新的含义,使之实现新功能,因此,一个函数名就可以用来代表不同功能的...“是C++的位运算中的位移运算符(左移),但在输出操作中又是与流对 象cout
半导体工艺原理实验。实验五:光纤位移传感器-位移测试实验
因为Java 使用2的补码来存储负数,并且因为Java 中的所有整数都是有符号的,这样应用位运算符可以容易地达到意想不到的结果。例如,不管你如何打算,Java 用高位来代表负数。为避免这个讨厌的意外,请记住不管高位的...
摘 要: 介绍了一种电感式位移传感器的电路系统。该系统以一片AD698芯片为信号调整电路的,将位移量输出信号转换为相应的直流电压值,并结合其它一系列电路模块实现了测头位移量测量。通过对测头的标定试验证明该...
3.8.6 基本功训练6——位移实现数字乘以2的8次幂 86 3.9 情景应用——拓展与实践 86 3.9.1 情景应用1——输出长方形面积 86 3.9.2 情景应用2——输出字节bit位的值 87 3.9.3 情景应用3——判断奇偶数 88 3.9.4 ...
C#位移运算符: 左移:<< 右移:>> 位移理解可能简单一些:其实就是数据转换成二进制的左右移动;右移左补0,左移右补0,后面多出来的部分去掉。 用乘除法去理解位移也可以: 左位移:相当于乘 左移1位相当...