请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请问波波老师关于溢出的问题

intToString方法中对负数的处理

if(num < 0){
            num = -num;
            sign = "-";
        }

这里如果num是最小负值Integer.MIN_VALUE的时候会有溢出的问题吗?

正在回答 回答被采纳积分+3

1回答

liuyubobobo 2018-06-24 15:35:14

赞!


本质是产生溢出了,但无论是C++还是Java都不会产生中断错误,只会产生不正确的结果:)


在我们这一小节,主要是为了演示时间复杂度的不同,没有考虑整形溢出的边界。有兴趣可以自己添加上对这个边界的判断?具体的处理,在判断出溢出的情况下,可以抛出异常中断程序,也可以转换成long整型完成逻辑:)试试看?


加油!


0 回复 有任何疑惑可以回复我~
  • 老师,我在VS2010中测试,转换成long long int可以实现最小int值用取反操作符求得正确正值。long和int同样是4个字节,所以结果和int一样。
    回复 有任何疑惑可以回复我~ 2018-09-22 16:20:59
  • 赞!我说的long整型,在C++中就是long long,在Java中是long,不同的语言定义不同(而且和操作系统相关),所以统一描述表示成“长整型”,不是具体的语法:)
    回复 有任何疑惑可以回复我~ 2018-09-23 01:34:51
  • 谢谢老师:)
    回复 有任何疑惑可以回复我~ 2018-09-23 06:17:20
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信