Java 进制转换问题

文章介绍了Java中数据类型的大小以及隐式和强制类型转换的概念。在隐式转换中,较小的数据类型在运算时会提升为较大的类型,例如byte、short和char会被提升为int。当需要将较大的类型赋值给较小的类型时,需要进行强制类型转换,如`(byte)(a+b)`。文章通过示例展示了转换过程中的问题及其解决方案。
摘要由CSDN通过智能技术生成

 

类型        大小(字节)
byte1
short2
int4
long8
float4
double8
char2
boolean1

 

隐式转换:取值范围小的数与取值范围大的数做运算时,取值范围小的会自动提升为取值大的数的类型,再进行运算。

byte、short、char类型会自动提升为int再进行计算。

byte a=1;
byte b=1;
byte c=(a+b);
System.out.println(c);

 

解决方法: 

将c的类型修改为int。

int c=(a+b);

或者使用 强制类型转换

 byte c=(byte)(a+b)

强制类型转换:把一个取值范围大的数值或者变量,赋值给另一个取值范围小的变量,不允许直接赋值,需要加入强制转换

格式 :   类型  变量名 = (需要转换的类型) 表达式

//shrot类型的b与int类型a相加并赋值给b时,会报错,因为(a+b)的类型是int型,无法赋值给short型。
short b=1;
int a=1;
b=a+b;
System.out.println(b);

 解决办法:

 byte c=(byte)(a+b)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值