这似乎在欺骗Java转换数字而不强制给出正结果:
Integer.valueOf("FFFF",16).shortValue(); // evaluates to -1 (short)当然,这种情况仅适用于8、16、32和64位2的补码:
Short.valueOf("FF",16).bytevalue(); // -1 (byte)Integer.valueOf("FFFF",16).shortValue(); // -1 (short)Long.valueOf("FFFFFFFF",16).intValue(); // -1 (int)new BigInteger("FFFFFFFFFFFFFFFF",16).longValue(); // -1 (long)


