如何将18位数字字符串转换为BigInteger?
任何人都可以帮助我将18位数字字符串数字转换为java中的BigInteger
ie;字符串"0x9999999999999999"
应显示为0x9999999999999999
数值。
您可以在BigInteger构造函数中指定基数。
BigInteger bi = new BigInteger("9999999999999999", 16); String s = bi.toString(16);
如果String始终以“0x”开头并且是hex的:
String str = "0x9999999999999999"; BigInteger number = new BigInteger(str.substring(2));
更好,检查它是否以“0x”开头
String str = "0x9999999999999999"; BigInteger number; if (str.startsWith("0x")) { number = new BigInteger(str.substring(2), 16); } else { // Error handling: throw NumberFormatException or something similar // or try as decimal: number = new BigInteger(str); }
要将其输出为hex或转换为hex表示forms:
System.out.printf("0x%x%n", number); // or String hex = String.format("0x%x", number);
你期望这个数字是hex的,因为这通常意味着什么?
将纯字符串转换为BigInteger
BigInteger bi = new BigInteger(string); String text = bi.toString();
将hex数字作为文本转换为BigInteger并返回。
if(string.startsWith("0x")) { BigInteger bi = new BigInteger(string.sustring(2),16); String text = "0x" + bi.toString(16); }
BigInteger bigInt = new BigInteger("9999999999999999", 16);