java中两个不同类型的整型变量进行计算,得出的结果是什么类型?

如题;publicclasstest{publicstaticvoidmain(String[]args){longa,b,c;a=(long)Math.pow(2,31... 如题;

public class test {
public static void main(String[] args) {
long a,b,c;
a = (long) Math.pow(2,31);
b = 1;
c= a+b;
System.out.println(a+"\n"+c);
}
}
不是所有整型变量进行计算前都会自动转换成 int 型吗?a 转换成 int 型超出了- 2^31 ~ 2^31 - 1 的范围,为什么编译不会出错?
展开
 我来答
DuangDa
2014-11-22 · TA获得超过1355个赞
知道小有建树答主
回答量:1136
采纳率:50%
帮助的人:401万
展开全部
你这是long类型的啊...long类型比int范围大啊
数据类型 大小 范围 默认值

byte(字节) 8 -128 - 127 0
shot(短整型) 16 -32768 - 32768 0
int(整型) 32 -2147483648-2147483648 0
long(长整型) 64 -9233372036854477808-9233372036854477808 0
float(浮点型) 32 -3.40292347E+38-3.40292347E+38 0.0f
double(双精度) 64 -1.79769313486231570E+308-1.79769313486231570E+308 0.0d
char(字符型) 16 ‘ \u0000 - u\ffff ’ ‘\u0000 ’
boolean(布尔型) 1 true/false false
追问
a定义时是long型,但是计算时不是转换成int型吗?这样不就超出范围了吗?还有就是计算结果c是什么类型?是long还是int?求解
追答
C 是long类型的,int  double long   计算到最后的结果都是long型
善鹏海0Hc6ff
2014-11-22 · TA获得超过665个赞
知道小有建树答主
回答量:1108
采纳率:0%
帮助的人:545万
展开全部
你改为64次方试试,我记得long int是8字节的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式