java中 byte b = 2; b = 3+7;执行正确 但是 byte b = 2; byte b1 = 3; byte b2 = 7; b = b1+b2;执行错误
4个回答
展开全部
b = b1+b2;错误是因为byte与byte数据相加,数据自动转换为int型,所以byte b= b1+b2肯定不对了啊。需要类型强制转换,byte b=(byte)(b1+b2)
更多追问追答
追问
你的意思应该是int型赋给byte会损失精度报错,对吗?
但,
byte b=2;
b=3+7;
3、7也是int型,相加后仍是int型,编译时未报错
追答
int型赋给byte会损失精度报错,这句话是对的。但后面的3、7也是int型就不对了,因为byte的取值范围是-128~127 ,那么这个3,7判定是什么类型,就不确定了,比如byte b =3;int b=3;long b=3L,这都可以正常编译,原因是它会根据这个数值所在范围,3明显在 -128~127 这个范围内,这个判定依据是前面的符号。如果byte b=3,它就会占2个字节。而int b=3,它就会占4个字节。long b=3L,它就占8个字节。
展开全部
貌似两个byte型变量相加,结果会隐式转换成int型,JAVA程序员面试宝典里有这题目的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应为byte不能加减!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
byte b=(byte)(b1+b2)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询