开创
我有一个带符号的int_32值(FFFFFFFC),它表示-4
如果我尝试通过...转换
long x = Long.parseLong("FFFFFFFC", 32);
System.out.println("X: " + x);
...我将得到“ X:532021755372”而不是-4。如何将其转换为带符号的值?
谢尔盖·卡里尼琴科(Sergey Kalinichenko)
您会得到错误的结果,因为32代表数字基,而不是结果中的位数。您正在将字符串解析为以32为底的数字(即,在编号系统中使用数字0..9和字母A..V而不是0..9和A..F的数字。
要正确解析数字,请使用Long.parseLong("FFFFFFFC", 16);
,并将结果强制转换int
为32位数字:
int x = (int)Long.parseLong("FFFFFFFC", 16);
System.out.println("X: " + x); // Prints X: -4
演示
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
编辑于
我来说两句