當我將多個十六進制字符插入正在轉換爲整數值的字符串時,我收到了異常。NumberFormatException對很多十六進制字符
代碼:
//variables used in this problem
int INT_MAX = 2147483647;
int INT_MIN = -2147483648;
int currentBase = 16;
string displayValue;
switch(currentBase) {
case 16:
if((Integer.valueOf(displayValue + "F", currentBase) >= INT_MIN) && (Integer.valueOf(displayValue + "F", currentBase) <= INT_MAX))
{
displayValue += "F";
}
break;
}
錯誤消息:
E/AndroidRuntime(6944): Caused by: java.lang.NumberFormatException: Invalid int: "FFFFFFFF"
E/AndroidRuntime(6944): at java.lang.Integer.invalidInt(Integer.java:138)
E/AndroidRuntime(6944): at java.lang.Integer.parse(Integer.java:378)
E/AndroidRuntime(6944): at java.lang.Integer.parseInt(Integer.java:366)
E/AndroidRuntime(6944): at java.lang.Integer.valueOf(Integer.java:510)
E/AndroidRuntime(6944): at com.example.calculator.MainActivity.send_f(MainActivity.java:968)
我需要這個字符串具有不超過尺寸INT(32個比特)大的值。有什麼建議麼?
讓您的數字小嗎?你在問什麼? – SLaks
該數字是用戶輸入,我試圖在支持雙字(32位)的計算器中使用此值。 – Taylor
正如您似乎已經知道的那樣,Java'int'值範圍從-2147483648到2147483647.十六進制值0xFFFFFFFF是4294967295,它在此範圍之外。 –