java移位运算

>>和<<,还有>>>

移位运算符就是在二进制的基础上对数字进行平移。上面三种分别代表左移,带符号右移和不带符号右移

类型的变化

byte,short和char移位后结构会变成int;这四个家伙每移动33次等于移动一次,long的话就是移动66次和移动2次结果没什么区别。

移动规则

按二进制形式把所有的数字向左移动对应的位数。右边用可爱的0来补充好了…

语法格式为:需要移位的数字<<移位的次数

举个例子好了:3<<2

对3做短除法运算,把余数从下到上排列:"11"(也难怪1是"1","2"是10,"3"当然就是11喽)(其实是0000 0000 0000 0000 0000 0000 0000 0011)左移两位变成1100(最左边两个0被移除舍弃掉了)

将1100转换为十进制,2的3次方乘1+2的2次方乘1+2的1次方乘0+2的0次方乘0=8+4=12相信大家都算得出来。

讲道理右移也一样,只是>>>的话移动后负数不带负号

posted @ 2017-04-18 22:14  Colos  阅读(225)  评论(0编辑  收藏  举报