gpt4 book ai didi

java - 在java中将64位无符号整数(十六进制字符串形式)转换为十进制

转载 作者:行者123 更新时间:2023-12-01 07:25:18 27 4
gpt4 key购买 nike

我有一个表示 64 位无符号整数的十六进制字符串。

我想将其转换为java中的十进制表示形式。

我想使用 Long.parseLong("HexString", 16); 但在 java 中最左边的位是符号位,任何大于 2^31-1 的数字都不适合。

那么我如何转换和存储这些数据?

谢谢,阳光明媚

最佳答案

您可以使用 constructor that takes a String and an int radix 创建一个 BigInteger .

BigInteger bigInt = new BigInteger(hexString, 16);

如果您有 Java 8,则可以使用 Long.parseUnsignedLong ,这将允许您解析所有 64 位,即使设置了通常将其置于 Long.MAX_VALUE 之上的位。它仍然返回一个 long,在 Java 中它仍然是有符号的,但它会被解析为一个无符号的 long

long stillSigned = Long.parseUnsignedLong(hexString, 16);

如果解析的值为负数,则真正的无符号值是有符号值 + 264

关于java - 在java中将64位无符号整数(十六进制字符串形式)转换为十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26068555/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com