数据类型转换及运算符

196 阅读2分钟

数据类型转换

自动转换

一个int类型变量和一个byte类型变量进行加法运算,结果是什么数据类型呢?

int a=1;
byte b=2;

结果运算,变量的类型是int,这是为什么呢?其实这就是出现了数据类型自动转换的现象。

自动转换:将取值范围小的类型自动提升为取值范围大的类型。

public static void main(String[] args) {
        int a=1;
        byte b=2;
        //byte c=a+b;//报错
        //int类型和byte类型运算,结果是int类型
        System.out.println(a+b);
    }

转换原理

byte类型内存占有1个字节,在和int类型运算时会提升为int类型,自动补充3个字节,因此计算后的结果还是int类型。

同样道理,当一个 int 类型变量和一个 double 变量运算时, int 类型将会自动提升为 double 类型进行运算。

public static void main(String[] args) {
        int a=1;
        double b=2;
        //int c=a+b;//编译错误
        System.out.println(a+b);
    }

转换规则

范围小的类型向范围大的类型提升, byte、short、char 运算时直接提升为 int 。

ASCLL编码表

在计算机内部都是二进制的0、1数据,为了让计算机可以识别人类文字的问题,产生了编码表的概念。

编码表: 就是将人类的文字和一个十进制数进行对应起来组成一张表格的中间表。 人们规定

将所有的英文字母、数字、符号都和十进制进行了对应因此产生了世界上第一张编码表ASCLL( American Standard Code for Information Interchange 美国标准信息交换码)。

在进行char类型和int类型计算的时候,char类型的字符先查询编码表,得到99,在和1求和,结果为100,char类型提升为了int类型,char类型内存占2个字节,int类型内存占4个字节。

运算符

算术运算符

整数使用运算符无论怎样计算也不会得到小数。

!注意使用的是int类型

赋值运算符

比较运算符

逻辑运算符

三元运算符

格式 a>b?a:b

示例: