Java类型转换-创新互联
一、隐式转换
当前名称:Java类型转换-创新互联
本文URL:http://ybzwz.com/article/eedhd.html
把一个取值范围小的数值或者变量,赋值给另一个取值范围大的变量,数据类型可以直接转换。
成都创新互联主要为客户提供服务项目涵盖了网页视觉设计、VI标志设计、网络营销推广、网站程序开发、HTML5响应式网站建设公司、手机网站制作设计、微商城、网站托管及网站建设维护、WEB系统开发、域名注册、国内外服务器租用、视频、平面设计、SEO优化排名。设计、前端、后端三个建站步骤的完善服务体系。一人跟踪测试的建站服务标准。已经为成都砂岩浮雕行业客户提供了网站制作服务。例如:
public class Demo01 {public static void main(String[] args) {int a = 10;
double b = a;
System.out.println(b);//输出的结果为 10.0
}//此处由于double类型取值范围较大,所以变量b可以直接转换为double类型
}
表示数据范围从小到大示例:
byte -->(short,char)–>int -->long -->float -->double
注意:虽然 float 占用 4 个字节,但是取值范围要比 8 个字节的 long 更大,原因在于小数的二进制存储形式更加节省内存!
运算过程中的隐式转换1,取值范围小的数据和取值范围大的数据进行运算,范围小的数据类型会先提升为范围大的数据类型之后,再进行运算。
例如:
public class Demo01 {public static void main(String[] args) {int a = 10;
double b = 12.3;
double c = a + b;//此处int类型数据会先转换为double类型,然后再进行加法运算
System.out.println(c);//此时输出结果为22.3
}
}
2,byte、short、char 三种数据在运算的时候,都会提升为 int 之后再进行运算。
例如:
public class Demo01 {public static void main(String[] args) {byte a = 10;
byte b = 20;
int c = a +b;
System.out.println(c);//此时输出结果为30
}
}
二、强制转换把一个取值范围大的数值或者变量,赋值给另一个取值范围小的变量,数据需要进行强制类型转换。
强制转换格式:目标数据类型 变量名 = (目标数据类型)被强转的数据;
注意:强制转换有可能会出现精度损失
例如:
public class Demo02 {public static void main(String[] args) {double a = 12.3;
int b = (int)a;
System.out.println(b);//此时输出结果为12,但丢失了一定的精度
}
}
三、原码反码补码原码数据的二进制体现形式,一个字节由8个二进制位组成。
高位:二进制数据中,最左侧的数据,通过高位代表符号位。
0代表正数
1代表负数
其余位表示数值大小
弊端:遇到负数运算,可能会出现错误。
正数的反码与其原码相同。
负数的反码是对其原码逐位取反,但符号位除外。
正数的补码与其原码相同。
负数的补码是在其反码的末位加1。
例如:
public class Demo03 {public static void main(String[] args) {byte a = 1+2;
System.out.println(a);
}
}
Java存在常量优化机制,在编译的时候(javac)就会将3和4这两个字面量进行运算,在产生的字节码文件中 byte a = 3。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
当前名称:Java类型转换-创新互联
本文URL:http://ybzwz.com/article/eedhd.html