当前位置: 代码迷 >> J2SE >> 关于int 有关问题求解.感谢
  详细解决方案

关于int 有关问题求解.感谢

热度:343   发布时间:2016-04-23 22:20:24.0
关于int 问题求解.感谢
int MY_KEY = 3 << 4
是什么意思.怎么不是 int MY_KEY=3  或=4之类的.
感谢了.

------解决方案--------------------
<<是位移运算符。表示将二进制表示式 向左移动x位
比如
3的二进制是 0011
<<4向左移动4位,移动的空缺补0 得到

0011 0000

计算得48

也可以简单计算
3 的 权值表示法 为
 3= 2^1+2^0 

向左移动4位,那么以为权值提升4为
2^(1+4) + 2^(0+4)
= 2^5+2^4
=32+16=48
------解决方案--------------------
MY_KEY 等于 3 向左移动 4位
------解决方案--------------------
 左移运算符
左移运算的话 3乘以2的左移位数次幂
右移运算的话 前面的数除以2的右移位数次幂!
------解决方案--------------------
"<<"这个是位移运算符,就是3向左移4位,要说明这个移法,就要涉及到计算机语言中的二进制码了:
int类型的3的二进制表示形式:
00000000 00000000 00000000 00000011 --  int MY_KEY = 3;
3 << 4 就等效于每一个二进制码向左移动四位,得到结果:
00000000 00000000 00000000 00110000  -- int MY_KEY = 3 << 4; 
上面的二进制数用十进制表示就是48,
谢谢楼主的提问!

------解决方案--------------------
相当于 int MY_KEY = 3 * 2^4 
------解决方案--------------------
引用:
<<是位移运算符。表示将二进制表示式 向左移动x位
比如
3的二进制是 0011
<<4向左移动4位,移动的空缺补0 得到

0011 0000

计算得48

也可以简单计算
3 的 权值表示法 为
 3= 2^1+2^0 

向左移动4位,那么以为权值提升4为
2^(1+4) + 2^(0+4)
= 2^5+2^4
=32+16=48




正解  给分
  相关解决方案