[英]byte array to Hex (in int format)
我有以下函數將字節數組轉換為整數格式的十六進制。
private static int byteArray2Int(final byte[] hash) {
Formatter formatter = new Formatter();
for (byte b : hash) {
formatter.format("%02x", b);
}
String str = formatter.toString();
int hex = Integer.parseInt(str, 16); //number format exception
return hex;
}
-
而且我正在錯誤以下。 我知道格式化程序的值已經是十六進制的,但是我想以整數格式存儲。
請問我該怎么辦?
Exception in thread "main" java.lang.NumberFormatException: For input string: "202e4724bb138c1c60470adb623ac932"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
如下使用BigInteger,而不要嘗試將其存儲在int中,因為您的String太長而無法容納在int范圍內。
String hex = "202e4724bb138c1c60470adb623ac932";
BigInteger bi = new BigInteger(hex, 16);
System.out.println(bi);
“ 202e4724bb138c1c60470adb623ac932”太大,無法放入int或long中。 這將需要16個字節(如果我沒記錯的話)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.