基本类型(除了boolean外)可以自动转换的,转换形式为:byte,short,char – int --long–float–double这就是自动转换的顺序了,其中byte,short,char在运算时是自动转换为int型的,而int与long运算时自动转换为long型。从上可知,float与double运算时是自动转换为double再进行计算的,int与float运算时先转换为float再运算。
1. int转换为byte的基本原理 在Java中,int类型的取值范围是-2147483648到2147483647,而byte类型的取值范围是-128到127。因此,当我们需要将int类型的数据转换为byte类型时,需要进行一些范围的判断和处理。 基本的转换思路是将int类型的数据进行截断,只保留低8位的数值,然后将其转换为byte类型。换句话说,我们需要将int...
因此取值范围为:[-2^31, 2^31 - 1]; 3.进入正题,int转换为byte类型过程 例子1:int类型1转换为byte类型 bytea=1;1的原码:000000000000000000000000000000011的补码:00000000000000000000000000000001转换为byte丢掉高位3个字节得到:00000001最高位为0,即是正数,因此补码与原码一致,转为为10进制为1。 例子2:int类型128...
int i =1; Integer i= new Integer(1);//integer 是一个类 int 是基本数据类型(面向过程留下的痕迹,不过是对java的有益补充);Integer 是一个类,是int的扩展,定义了很多的转换方法 注意:类似的还有:float Float;double Double;String等,其中String较为特殊,基本类型和复杂类似关键字相同。 例如,当需要往Arra...
●int是基本数据类型,代表整型数据,默认值是0;●Integer是 int的包装类,属于引用类型,默认值为null...
int i = 3.14; // 编译报错 想要赋值成功,只有通过强制类型转换,将double 类型强制转换成int 类型才能赋值。规则:将取值范围大(或容量大)的类型强制转换成取值范围小(或容量小)的类型。自动类型提升是Java自动执行的,而强制类型转换是自动类型提升的逆运算,需要我们自己手动执行。转换格式:数据类型1 变量...
上述代码中,因为int类型的取值范围大于byte类型的取值范围,所以编译器在赋值过程中不会造成数据丢失,能够自动完成类型的转换。 除此之外,还有很多数据类型之间可以进行自动类型转换,例如: (1)整数类型之间可以实现转换,如byte类型的数据可以赋值给short、int、long类型的变量,short类型的数据可以赋值给int、long类型的变量...
/* 1、如果两个操作数中有一个是double类型,另一个就会转换为double类型; 2、否则,如果有一个操作数是float,另一个就会转化为float; 3、否则,如果有一个操作数是long,另一个就会转换为long; 4、否则,两个操作数都将转换为int类型。 */ *面试陷阱 ...
所以不同的类型占用的字节大小不同,取值范围也不一样。另外我们还知道,一个变量可以赋值给另一个变量,当然前提是他们的类型差不多。那么此时可能就存在一个问题:如果把byte变量赋值给int变量行不行?反之,把int变量赋值给byte行不行?引用类型之间也能互相转换吗?如果可以的话,会不会出现什么问题?2. 方式 ...
Java是一种强类型语言,针对每种数据都提供了对应的数据类型,每种类型所占的字节数也不同,因此,所能表示的范围也有所不同,从而就会涉及到数据类型转换。默认转换 1 byte,short,char -- int -- long -- float -- double 2 byte,short,char之间不互相转换直接转换成int类型不参与运算 3 long(8个字...