永发信息网

java程序的问题

答案:2  悬赏:30  手机版
解决时间 2021-02-15 20:54
  • 提问者网友:我们很暧昧
  • 2021-02-14 22:28
public class Demo {
public static void main(String args[]) {
int num = 2147483647 ;
num += 2 ;
System.out.println(num) ;
}
}
输出结果为什么是-2147483647
最佳答案
  • 五星知识达人网友:woshuo
  • 2021-02-14 22:42
java中int类型的数据 占据4个字节,即32位,最高位时符号位(0是正数,1是负数)
最小值是 -2,147,483,648(-2^31)
最大值是 2,147,483,647(2^31 - 1)
最大值2147483647 + 1后,数据进位,符号位变为1后
就变成最小数-2,147,483,648,
再加1就是你得到的结果了
总之一句话是因为数据位的溢出,导致符号位的变化。
在计算机中 负数的表达形式,是啥呢???正数取反再加1,所以整个过程的涉及的原理就是这两个
全部回答
  • 1楼网友:迷人又混蛋
  • 2021-02-14 23:54

这个是递归算法,就是一个阶乘,由你的程序得所求为5×func(4)

5×4×func(3)

5×4×3×func(2)

5×4×3×1当n=2时,func(2)=1递归结束

所以所求为60

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯