请教!java里 2<<3 是什么意思?

snyy20 2007-09-30 06:29:08
最近碰到一个问题,就是java里有"<<",">>" 这两个运算符吗?

上面两个运算符是什么意思?

请各位大侠指点!
...全文
8188 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
88324877 2007-10-01
  • 打赏
  • 举报
回复
java基础
超级大笨狼 2007-10-01
  • 打赏
  • 举报
回复
>>1相当于除2
>>3就是除3次
  • 打赏
  • 举报
回复
不仅仅有 >> 和 <<,还有 ~ >>> | & ^ 这些呢!
tangxufeng 2007-10-01
  • 打赏
  • 举报
回复
<<和>>是java基础里的东西,就是左移和右移,比如a=10,转换成二进制就是1010,a<<1就是10100,再转换回去是20,那
a<<1就相当于a*2,a<<3相当于a*(2*2*2),右移a>>1相当于a/2,不过用<<和>>速度快一点,因为用*/最终是用转换成<<和>>的。
gogojiayou 2007-10-01
  • 打赏
  • 举报
回复
"a<<b;"将二进制形式的a左移b位,低位空出的所有b位补0;
"a>>b;"将二进制形式的a右移b位,高位空出的所有b位补原来的符号位;
还有a>>>b,将二进制形式的a右移b位,高位空出的所有b位补0;
没有<<<符号,谨记;
C++语言中有那个符号,不过意思不一样

huzige2008 2007-10-01
  • 打赏
  • 举报
回复
7楼和11楼说的不错。
blliy117 2007-10-01
  • 打赏
  • 举报
回复
移位运算符

正负数都用补码作运算,>>和<<低位用0来填充,高位用符号位填充,若>>>(无符号右移)都0来填充
xiongwei5233 2007-10-01
  • 打赏
  • 举报
回复
JAVA的位运算。〈〈左移动两位,2次。0000 0001既 0000 0100
〉〉右移 同理
ldzywxj 2007-09-30
  • 打赏
  • 举报
回复
“x<<y"是位运算符当中的"左移"运算,其中x是左移的数,y是左移的位。如:
2<<2的运算过程:
2转化为二进制是
0000 0010
那么左移2位得到
0000 1000即得到结果为8
总结:左移一位相当乘以2,左移n位相当于乘以2的n次方。

右移<<是:
右移一位相当于整除2。

上面这两个是不带符号的移位运算。
还有一个:>>>这个是带符号的右移
sealed 2007-09-30
  • 打赏
  • 举报
回复
求2的3次方效率最高的方法就是2<<3
snyy20 2007-09-30
  • 打赏
  • 举报
回复
我那本书还真没有看到这两个运算符,不过刚才试验了一下,也算了算,还真的是位运算。谢谢各位的指点!
chen_liang747703 2007-09-30
  • 打赏
  • 举报
回复
这是JAVA 的基础啊!看看书吧!应该有的……
yifengtpf 2007-09-30
  • 打赏
  • 举报
回复
当然有这2个运算符啊
这是位运算,也就是可以理解为直接操作内存中的二进制数
前一个是 把一个二进制数左移 后一个是 右移
如 把 8>>2 就是把8往左移动2位 也就是 8/(2x2)=2
对应的 往右移N位就是 乘上 2的N次方
joejoe1991 2007-09-30
  • 打赏
  • 举报
回复
位运算符 偶也不太懂。。。 搞不清楚它们到底有啥用。。。
kqw1981 2007-09-30
  • 打赏
  • 举报
回复
么用过

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧