【发布时间】:2021-02-25 10:53:21
【问题描述】:
我有以下代码...
int Val=-32768;
String Hex=Integer.toHexString(Val);
这相当于ffff8000
int FirstAttempt=Integer.parseInt(Hex,16); // Error "Invalid Int"
int SecondAttempt=Integer.decode("0x"+Hex); // Error "Invalid Int"
因此,最初,它将值 -32768 转换为十六进制字符串 ffff8000,但随后无法将十六进制字符串转换回整数。
在.Net 中,它按我的预期工作,returns -32768。
我知道我可以编写自己的小方法来自己转换它,但我只是想知道我是否遗漏了什么,或者这是否真的是一个错误?
【问题讨论】:
-
提示:因为约定变量名称以小写字符开头:
int firstAttempt = 5;