最近碰到一个问题,就是java里有"<<",">>" 这两个运算符吗?上面两个运算符是什么意思?请各位大侠指点!
解决方案 »
- 求教一个关于Java虚拟机版本的小白问题
- EL表达式能否判断 对象 a instanceof Class B?
- 谁有java英文版api给我发个下载地址,我找不到谢谢
- oracle jdbc char 字段 PreparedStatement 查询问题
- 参照书上的例子写的一个创建窗口+一个摁钮的程序,却报错
- 怎样在程序中调用方法?
- 如何把“\”替换成"\\" =============================
- 高手帮俺改改这段代码,要求两个按钮,一个控制播放,一个控制停止,谢了,急啊!!
- 本人刚刚学JAVA,求变量转换集。出分50,希望各位兄第能帮一下。
- 生成一个系统托盘的图标,请指教
- java中如何侦听键盘输入事件同是侦听鼠标移动事件的??
- 求助 ~AIP43496203AIP34572095AIP73135430
这是位运算,也就是可以理解为直接操作内存中的二进制数
前一个是 把一个二进制数左移 后一个是 右移
如 把 8>>2 就是把8往左移动2位 也就是 8/(2x2)=2
对应的 往右移N位就是 乘上 2的N次方
2<<2的运算过程:
2转化为二进制是
0000 0010
那么左移2位得到
0000 1000即得到结果为8
总结:左移一位相当乘以2,左移n位相当于乘以2的n次方。右移<<是:
右移一位相当于整除2。上面这两个是不带符号的移位运算。
还有一个:>>>这个是带符号的右移
>>3就是除3次
〉〉右移 同理
"a>>b;"将二进制形式的a右移b位,高位空出的所有b位补原来的符号位;
还有a>>>b,将二进制形式的a右移b位,高位空出的所有b位补0;
没有<<<符号,谨记;
C++语言中有那个符号,不过意思不一样
a<<1就相当于a*2,a<<3相当于a*(2*2*2),右移a>>1相当于a/2,不过用<<和>>速度快一点,因为用*/最终是用转换成<<和>>的。