读书人

关于一个16进制数字的java有关问题~着

发布时间: 2011-12-18 22:54:38 作者: rapoo

关于一个16进制数字的java问题~着急等待...
看下面的程序,最后i、j的打印结果是什么,给出原因解释~~

Java code
public class Test { public static void main (String args[]) { int i = 0xFFFFFFF1; int j = ~i; System.out.println(i); System.out.println(j); }               }


[解决办法]
0xFFFFFFF1 :第一位是1,所以应该是个负数
所以0-0xFFFFFFF1 = - 0000 0000 0000 0000 0000 0000 0000 1111 = -15
打出来应该是
-15
14
[解决办法]
-15
14

-15的原因是:0xFFFFFFF1是15的原码取反再+1得到的,所以你只需要反过来推就行了。

0xFFFFFFFF是-1
0xFFFFFFFE是-2
……
0xFFFFFFF1是-15

明白了?

读书人网 >J2SE开发

热点推荐