gpt4 book ai didi

java - 使用 BigInteger 将负数解释为无符号数

转载 作者:行者123 更新时间:2023-12-03 01:02:46 24 4
gpt4 key购买 nike

是否可以使用Java的BigInteger将负数解析为无符号值?

例如,我会将 -1 解释为 FFFFFFFFFFFFFFFF

最佳答案

尝试使用构造函数

public BigInteger(int signum, byte[] magnitude)

第一个参数应设置为 1 以指定您要创建正数。字节数组是您正在按 BIG ENDIAN ORDER 解析的数字。如果您将第一个参数设置为 1,它应该被解释为无符号数字。唯一的技巧是将您的数字放入字节数组中,但这应该不会太困难。

编辑:看起来你必须在这里进行一些手动位算术。如果我正确理解您的问题,您需要将 String 解释为 Long ,然后将该 long 解释为无符号并将其存储在 BigInteger 类中。我会这样做。

public BigInteger getValue(String numberString)
{
Long longValue = Long.valueOf(numberString);
byte [] numberAsArray = new byte[8];
for(int i = 0; i < 8; i++)
{
numberAsArray[7 - i] = (byte)((longValue >>> (i * 8)) & 0xFF);
}
return new BigInteger(1, numberAsArray);
}

关于java - 使用 BigInteger 将负数解释为无符号数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10886962/

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