当将数字0xFFFFFFFF(4294967295)声明为long时,java会将变量设置为数字-1。
public static final long Bits32 = 0xFFFFFFFF; //Bits32 = -1
我假设java最初将十六进制转换为整数,然后将其转换为long变量。 显而易见的解决方法是将Bits32设置为4294967295。然而,对我来说,这似乎不是一个简洁的解决方案。
任何人都知道如何在不必手动转换十六进制数的情况下向该数字声明一个长数?
干杯, 克里斯。
答案 0 :(得分:0)
定义为Hex Long:
long Bits32 = 0xFFFFFFFFL; //Bits32 = -1
System.out.println(Bits32);
System.out.println(Long.toHexString(Bits32));
注意0xFFFFFFFF
末尾的L.输出
4294967295
FFFFFFFF