int 或者Integer所能接受的二进制数位数是1个符号位位+31个数值位,Integer.valueOf不依靠符号位判断正负,而是字符串中的+/-,所以传递的字符串中二进制数最多只能是31位。这一点最好的验证就是,对于1000...000(31个0),Integer.ValueOf无法表示出 -2^31。     你可以使用Long.valueOf(),再把结果强制转换成int,它会自动截取的,可以达到你想要的结果。
点赞 评论

相关推荐

SHC2:关键问题是你这三段实习是三个不同的岗位…你这样子秋招就是只有一段实习的本科生..
点赞 评论 收藏
分享

牛客热帖

更多
牛客网
牛客企业服务