Java中整数类型转换

Java中整数类型转换为何byte转换int要强化,而short转换却不需要... Java中整数类型转换为何byte转换int要强化,而short转换却不需要 展开
 我来答
My_猿
2017-08-14
知道答主
回答量:4
采纳率:0%
帮助的人:2.6万
展开全部

在Java中,类型转换分为两种:一是隐式类型转换,二是强制类型转换。

隐式类型转换是低精度数据向高精度数据转换,系统自动执行,不需要编程人员手动实现。

强制类型转换是高精度数据向低精度数据转换,需要编程人员手动实现转换。

精度由低到高的顺序为byte<short<int <long<float<double

所以在楼主的第一个问题中答案是byte short 转为int是都不需要强制转换的。

楼主的追问中提到的问题涉及到了Java的默认类型,在Java中整数型默认为int,

所以无论楼主定义的a b是byte还是short, 其a+b的结果都是默认为int的。而楼主是用byte或short型变量接收a+b的运算结果。又因为int的精度高于byte和short, 所以他们都需要进行强制转换,否则编译是会报错的。

//byte运算
byte a=1;
byte b=2;
byte x=(byte) (a+b);
System.out.println(x);
//short运算
short  w=1;
short  s=2;
short  z=(short) (w+s);
System.out.println(z);

注意:在这个的强制类型转换中,因为涉及到了运算中类型提升问题,所以应当将a+b或w+s           整体用括号扩住,否则编译器仍会报错。

ifffhuhcxdfhnn
2017-08-13
知道答主
回答量:14
采纳率:0%
帮助的人:1.1万
展开全部

并不需要强化啊。。

追问
强制转型
比如
byte a=1;
byte b=2;
byte x=(byte)a+b//这里需要加上(byte),如果把byte换成short就不需要强制转型,为啥呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ittimeline
2021-03-31
知道答主
回答量:87
采纳率:0%
帮助的人:4万
展开全部

基本数据类型的类型转换

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式