java中 byte b = 2; b = 3+7;执行正确 但是 byte b = 2; byte b1 = 3; byte b2 = 7; b = b1+b2;执行错误

 我来答
子晓聊技术
2012-09-15 · TA获得超过1237个赞
知道小有建树答主
回答量:277
采纳率:0%
帮助的人:422万
展开全部
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个字节。
603642367
2012-09-15 · TA获得超过932个赞
知道小有建树答主
回答量:380
采纳率:33%
帮助的人:156万
展开全部
貌似两个byte型变量相加,结果会隐式转换成int型,JAVA程序员面试宝典里有这题目的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hacker2018
2012-09-15 · 超过18用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:42万
展开全部
应为byte不能加减!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
看老鼠在天上飞cu93d
2012-09-15 · TA获得超过252个赞
知道小有建树答主
回答量:604
采纳率:50%
帮助的人:361万
展开全部
byte b=(byte)(b1+b2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式