发布网友 发布时间:2024-10-23 22:08
共2个回答
热心网友 时间:2024-10-23 22:42
Integer默认为32位存储空间,parseInt转换时保留符号位(也就是需要显式的输入"-"去表示负数),则剩下31位,最大表示的16进制数字为7FFF FFFF,8000 0000 的二进制为1000 0000 0000 0000 0000 0000 0000 000,不符合转换规则
因此,16进制表示integer范围就是 ±7FFF FFFF,你输入的数字被视为﹢8000 0000,超出范围,抛出NumberFormatException,不冤枉
热心网友 时间:2024-10-23 22:47
你是按16进制来转换 但是该字符串的格式却不符合16进制
parseInt("-FF", 16) 返回 -255
字符串的 所有会抛出数字格式异常
Integer.parseInt("80000000",16) 你这个改为 10 进制没问题