如何在Java中以十六进制解析负长

如何在Java中以十六进制解析负长,第1张

如何在Java中以十六进制解析负长

您的问题是

parseLong()
不能处理二进制补码-它期望符号以’-‘的形式出现。

如果您正在开发CDC配置文件,则可以轻松使用

long l = new BigInteger("FFFFFFFFFFFFFFFF", 16).longValue()

但是CLDC配置文件没有该类。在那里,执行所需 *** 作的最简单方法可能是将长整型分割两半,然后重新组合。这有效:

long msb = Long.parseLong("FFFFFFFF", 16);long lsb = Long.parseLong("FFFFFFFF", 16);long result = msb<<32 | lsb;

更新

从Java
8开始,您可以使用

parseUnsignedLong()

long l = Long.parseUnsignedLong("FFFFFFFFFFFFFFFF", 16);


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5560907.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存