早教吧作业答案频道 -->其他-->
在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类...的网友还看了以下:
题意不太明白,也不知怎么证明.设S1、S2、S3是三个由整数组成的非空集合,已知对于1、2、3的任 2020-05-20 …
三条并联支路的分流公式比如电阻x,电感y,电容z.并联{字母代表阻抗}.我看过其分流公式为:电容i 2020-06-07 …
y=三次根号下(2x-a)(a-x)^2求y'怎么求也求不对 2020-06-12 …
z=(lny)^xy这个y的偏导数怎么求?你这个跟书上的答案不一样也书上是这样写的Z'y={e^[ 2020-06-20 …
f(x,y)=x^2y+3y的偏导数关于x的偏导数怎么一下就是2xy了,y的也怎么一下就是x^2+ 2020-07-08 …
求证:y'=(a^x)'=a^xIna也就是推导出指数函数的导数公式来的,书中是这样推导的,设y= 2020-07-22 …
对函数f(x,y)=x^2+xy,原点(0,0)是驻点却不是极值点我高数下书基本没看过完全跟什么都 2020-07-31 …
斜二测画法,平行x轴不变,平行于y轴的缩为原来的一半,那么既不平行于y轴也不平行于x轴该怎么办 2020-08-03 …
我不明白代数式和普通的算数题的区别.如果是普通的算数题我当然知道结果是多少,也要像普通算式一样写出具 2020-11-06 …
为什么“若x=1,y=-2,(X-1)的绝对值+(Y+2)的平方=0”是真命题呢?当(1-X)的绝对 2020-12-23 …