数据类型转换

来源:互联网 发布:unity3d 播放网络视频 编辑:程序博客网 时间:2024/06/03 20:52

数据类型转换:
1、小数据类型——–>大数据类型,采取的是自动类型转换
举例:

2、大数据类型———>小数据类型,报错
举例:

3、大数据类型———>小数据类型,采取的是强制类型转换
举例:

强制类型转换的格式:

小数据类型  变量名 = (小数据类型)大数据类型;

4、大数据类型———>小数据类型,如果大数据类型表示的数超过了小数据类型能够表示的范围,会是什么情况?
举例:

分析原因:
-128:
int类型(32bit):00000000 00000000 00000000 10000000
byte类型(8bit),所以只截取后八位: 10000000
在计算机中,如果是负数,那么最高位肯定是1, 如果是正数,那么最高位是0,所以在byte中是负数形式。

分析一下负数在计算机中的存在形式:

所以,10000000(补码)——>减1:01111111——>取反:10000000——>-128

5、凡是byte、short、 char数据类型数据在运算的时候都会自动转换成int类型的数据再运算
代码:

class Demo1{    public static void main(String[] args){        //报错,b3为byte类型,但是(b1+b2)自动转换成了int类型        byte b1 = 1;        byte b2 = 2;        byte b3 = b1+b2;        System.out.println(b3);         //正确,结果为3        byte b1 = 1;        byte b2 = 2;        byte b3 = (byte)(b1+b2);        System.out.println(b3);        //结果为98        System.out.println('a'+1);    }}

6、两个不同数据类型的数据在运算的时候,结果取决于大的数据类型
举例:

7、由于编译和运行,常量和变量的原因,导致这样一个情况
举例:

8、附加:

1 0