java里面,这条语句Integer.parseInt("80000000",16)怎么抛出NumberFormat...

发布网友 发布时间: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 进制没问题

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com