早教吧作业答案频道 -->其他-->
在Java中,两个byte类型数据相加为什么会报错呢?byteb=4;byteb1=3;byteb2=7;b=b1+b2;//这样是计算不出b,是错误的b=b1+7;//这样也是计算不出bbyteb=3+7;//怎么这样又可以计算?以下有了详细的介绍,希望有
题目详情
在Java中,两个byte类型数据相加为什么会报错呢?
byte b=4;
byte b1=3;
byte b2=7;
b=b1+b2; //这样是计算不出b,是错误的
b=b1+7; //这样也是计算不出b
byte b=3+7; //怎么这样又可以计算?
以下有了详细的介绍,希望有跟我一样不理解的也能看到:
//b = 3+7;
/*
b取值范围:-128~127
编译器在编译时(byte类型取值是有限的)他在判断右边的数值的时候发现是int类型(是“常量”),但他会判断是不是在byte字节范围之内,如果在的话,会给右边的int类型做默认的强转,他把最后的一个字节(byte八个二进制)赋值到了b这个变量当中
*/
/*
b1和b2是“变量”意味着这两值不确定、可能随时变化,编译器无法检查,也无法确定是否在byte字节范围之内,他检查不了就会报错(可能丢失精度),如果是“常量”编译器就能够判断了
int x;
int x1=Integer.MAX_VALUE;
int x2=2;
x=x1+x2;
默认int运算,一旦超出这个范围,他自动底层有强制转换过程,保留自己原有位置、高位全舍弃 这就是byte和int的区别,int属于默认类型,他就没有byte上面那样的问题
*/
//byte和short类型“变量”,相加不能确定结果,无法检查,也不是默认类型,所以byte、short类型相加的时候,都会自动提升到int类型的
byte b=4;
byte b1=3;
byte b2=7;
b=b1+b2; //这样是计算不出b,是错误的
b=b1+7; //这样也是计算不出b
byte b=3+7; //怎么这样又可以计算?
以下有了详细的介绍,希望有跟我一样不理解的也能看到:
//b = 3+7;
/*
b取值范围:-128~127
编译器在编译时(byte类型取值是有限的)他在判断右边的数值的时候发现是int类型(是“常量”),但他会判断是不是在byte字节范围之内,如果在的话,会给右边的int类型做默认的强转,他把最后的一个字节(byte八个二进制)赋值到了b这个变量当中
*/
/*
b1和b2是“变量”意味着这两值不确定、可能随时变化,编译器无法检查,也无法确定是否在byte字节范围之内,他检查不了就会报错(可能丢失精度),如果是“常量”编译器就能够判断了
int x;
int x1=Integer.MAX_VALUE;
int x2=2;
x=x1+x2;
默认int运算,一旦超出这个范围,他自动底层有强制转换过程,保留自己原有位置、高位全舍弃 这就是byte和int的区别,int属于默认类型,他就没有byte上面那样的问题
*/
//byte和short类型“变量”,相加不能确定结果,无法检查,也不是默认类型,所以byte、short类型相加的时候,都会自动提升到int类型的
▼优质解答
答案和解析
Java代码编译字节码后,byte short char boolean等基础类型都转换成int进行计算
b=b1+b2; //b1+b2得到了一个int的值所以需要强制转换
b=(byte)b1+b2;
b=b1+b2; //b1+b2得到了一个int的值所以需要强制转换
b=(byte)b1+b2;
看了 在Java中,两个byte类...的网友还看了以下:
1804年,拿破仑颁布了《民法典》.其根本目的在于A.保障小农土地所有制B.取得资产阶级的支持C. 2020-05-13 …
1900年春,清政府对义和团由“剿灭”改为“招抚”,目的在于A.抗击外国侵略B.控制利用义和团C. 2020-05-13 …
设f(x0在[a,b]单调连续,(a,b)可导,a=f(a)<f(b)=b求证:存在ξi∈(a,b 2020-05-14 …
20.我国先后推出了“西部大开发”、“振兴东北等老工业基地”和“中部崛起”战略,其根本目的在于A. 2020-05-16 …
在封建社会,统治者尊孔子为“至圣先师”的根本目的在于A.表彰孔子在教育上的贡献B.推崇孔子的政治理 2020-05-17 …
个人风险管理和保险规划的目的在于()A.对客户经济状况和保险需求的深入分析B.降低和转移风险C.帮 2020-05-22 …
为了应对既有制度中存在的弊端,智利于2008年建立了社会互济养老金,主要目的在于()A.提高养老 2020-05-22 …
对于寿险公司而言,进行回购、拆借、大额可转换存单等金融交易,主要目的在于( )A. 获取短期收益 2020-05-22 …
建立计算机网络的目的在于( ) A.资源共享B.建立通信系统C.建立自动办公系统D.建立可靠 2020-05-23 …
质量分别为15kg和5kg的长方形物体A、B静止叠放在水平桌面上(A的在下,B的在上,A比B大), 2020-05-23 …