我使用以下代码从十六进制字符串创建BigInteger
并打印输出。Java(BigInteger from byte array)
package javaapplication2;
import java.math.BigInteger;
import javax.xml.bind.DatatypeConverter;
public class JavaApplication2 {
public static void main(String[] args) {
// Number in hexadecimal form
String HexString = "e04fd020ea3a6910a2d808002b30309d";
// Convertation from string to byte array
byte[] ByteArray = toByteArray(HexString);
// Creation of BigInteger from byte array
BigInteger BigNumber = new BigInteger(ByteArray);
// Print result
System.out.print(BigNumber + "\n");
}
public static String toHexString(byte[] array) {
return DatatypeConverter.printHexBinary(array);
}
public static byte[] toByteArray(String s) {
return DatatypeConverter.parseHexBinary(s);
}
}
这个代码,我得到了以下结果执行后:
-42120883064304190395265794005525319523
但我希望看到这样的结果:
298161483856634273068108813426242891933
我做错了吗?
谢谢!在你的回答之后,我解决了这个问题。 – Kechup