帮忙解释下这个2<<3

njxiaoxiong 2010-09-08 10:45:13
就是移位 2<<3是怎么移位的 还有2<<=3和2<<3有什么区别 麻烦详解 谢谢
...全文
118 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
njxiaoxiong 2010-09-08
  • 打赏
  • 举报
回复
多谢楼上 明白了点 在试试去....
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mythofking 的回复:]

2<<3:00000010---->00010000,1向右边移动三位
“<<=”:操作符左边的值会移动由右边的值指定的位数,然后将得到的结果赋给左边的变量,所有2<<=3不行的,只能这样,int a=2; a <<= 3;
[/Quote]
2<<3:00000010---->00010000,1向左边移动三位
  • 打赏
  • 举报
回复
2<<3:00000010---->00010000,1向右边移动三位
“<<=”:操作符左边的值会移动由右边的值指定的位数,然后将得到的结果赋给左边的变量,所有2<<=3不行的,只能这样,int a=2; a <<= 3;
youjianbo_han_87 2010-09-08
  • 打赏
  • 举报
回复
我晕,现在CSDN的人气真好,刚讨论个问题回来,就有人回答了。。。
youjianbo_han_87 2010-09-08
  • 打赏
  • 举报
回复
哈哈,<< 是向左移的意思,也就是每移一位,就相当于乘以2. 原理就是先将2转换成 二进制的 10,然后左移三位,这样机器处理时最快的。

10
10 <-,不够得地方补0,就变成了 10000,也就是 16. 去复习下计算机原理 8421 码。

2<<=3,没有这种写法吧。
WoodLikeWater 2010-09-08
  • 打赏
  • 举报
回复
2<<3 2向左移3个位置
2 2进制表示 10
10 移动3个位置之后 10000
10000 转换成十进制 16

2<<=3 不行吧
int num = 2;
num<<=3;
先将num向左移动3个位置 最后将结果赋值于num 相当于 -= +=

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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