有int i = 2;为什么 i >> 32 == 2? i 的值并没有改变呢??? 问题同题目,不得其解,希望可以得到解释,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 JAVA采取的处理方式而已。因为在JVM里,int类型是32位的位移32(或32的倍数)比特相当于回到原点,因此值还是保持原来的值。除非你在一个周期内进行位移,JVM才认为有意义!! 比如 i>>j,对与int类型的操作数进行移位,后面的操作数j只使用其二进制表示的低五位。32的2进制低5位是00000,所以相当于没移。你可以实际处理使用 j%32的结果进行运算。对与long类型,使用后面操作数的低6位 再给楼主说的透彻点,在进行位移处理的时候,比如 2>>64 ,JVM并不会真去移动64位然后又回到原来的位置(因为是32位的2进制),JVM会对位移的位数进行%32取余再移动. 既然是这样 ,那么int i = 2; i >> 32 == 2 .因为移32等于移0 我不明白你说的是什么啊!!请你讲得简单一点行吗?红色部分如果对Long型来说是不是就是使用其二进制的低六位啊?? String的split()方法的疑问 UDP广播收不到 java 中英文问题 将应用程序压缩为JAR文件 请教一个Jbuilder的问题!!!! 为什么调用FTPClient.retrieveFile会死锁呢 tomcat连接池问题 mysql的JDBC的驱动程序。找了,没找到。请问哪清楚。 ~!~ 高分相送解决在ROSE2002中画UML问题(100) 请问log函数是那个类下的? 一道面试题! 【帮忙 急。。。】如何得到 CWM(common warehouse metamodel)java API包(100p)
因为在JVM里,int类型是32位的
位移32(或32的倍数)比特相当于回到原点,因此值还是保持原来的值。
除非你在一个周期内进行位移,JVM才认为有意义!!
对与int类型的操作数进行移位,后面的操作数j只使用其二进制表示的低五位。32的2进制低5位是00000,所以相当于没移。你可以实际处理使用 j%32的结果进行运算。
对与long类型,使用后面操作数的低6位
我不明白你说的是什么啊!!请你讲得简单一点行吗?红色部分如果对Long型来说是不是就是使用其二进制的低六位啊??