Oz_Vessalius 2017-09-03 08:14 采纳率: 50%
浏览 2210
已采纳

新手问一个关于整数溢出的问题

public class Test {
public static void main(String[] args) {
int integer = 2147483647 + 2;
System.out.println(integer);
}
}

请问为什么整数溢出后输出结果是-2147483647?

  • 写回答

11条回答 默认 最新

  • threenewbee 2017-09-03 08:26
    关注

    你还可以用时钟的方式来理解,假设一个时钟上有如下刻度
    -2147483648 --2147483647 -2147483646 -2147483645 ... -3 -2 -1 0 1 2 3 4 ... 2147483645 2147483646 2147483647 (后面接上 -2147483648,转一圈回来)
    把这些数字构成一个圆环
    加法就是往顺时针拨,减法就是往逆时针拨。
    你从2147483647 加2,就是往后拨2格,因为是一个圆环,所以是--2147483647

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(10条)

报告相同问题?

悬赏问题

  • ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
  • ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)
  • ¥15 彩灯控制电路,会的加我QQ1482956179
  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出
  • ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理
  • ¥15 操作系统相关算法中while();的含义
  • ¥15 CNVcaller安装后无法找到文件
  • ¥15 visual studio2022中文乱码无法解决