关于>>运算符号的问题 为什么右移32位,结果不变 如题。 比如说做运算 i=i>>32;i值不变 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 int i=8;i=i>>32;最后i=8;如果i是long 8;i=i>>32;结果为0i=i>>64;结果不变 还是8估计是>>位移数超过最大长度的时候 会自动做一个%运算 无论正数、负数,它们的右移、左移、无符号右移 32 位都是其本身,比如 -5<<32=-5、-5>>32=-5、-5>>>32=-5。 在 JVM 中,>> 操作,后面的数是 int 类型的。如果前一个操作数是 int 类型的话,取右移位数的低 5 位,相当于右移位数与 0x1f 做了 & 运算;如果前一个操作数是 long 类型的话,取右移位数的低 6 位,相当于右移位数与 0x3f 做了 & 运算。正如楼主的例子,>> 32,32(100000),可以看到它的低 5 位全是“0”,与 >> 0 的结果一致。 求好心人写个很科学的自学线路图 jdbc 实现Oracle全库备份 求助。。。测评题 搜狗测评题 帮我看看这个程序的运行结果 问个CVS无法提交的问题 我找不到现在我有多少分? java中怎样调用C#写的dll JDK里的java调用Vc写的DLL,其它都正常,就Vc里的定时器不工作? 多线程问题· 如何让两个byte类型的变量a和b进行异或(^)操作,然后将结果存入另一个byte中? 做JAVA数字证书时遇到的一个问题。 兼容性问题.
i=i>>32;最后i=8;如果i是long 8;
i=i>>32;
结果为0
i=i>>64;
结果不变 还是8
估计是>>位移数超过最大长度的时候 会自动做一个%运算
如果前一个操作数是 long 类型的话,取右移位数的低 6 位,相当于右移位数与 0x3f 做了 & 运算。正如楼主的例子,>> 32,32(100000),可以看到它的低 5 位全是“0”,与 >> 0 的结果一致。