Java 对byte,short,char,int,long 运算时自动类型转化情况说明
2017-02-13 21:22
746 查看
大家都知道,在进行运算时,Java会隐式的自动进行类型转化,那么有哪些情况会进行转化呢?总结如下:
当操作数是int, long时,不转化,原来是啥类型,还是啥类型。
双目运算符:+ - * / %(取余)
当两个操作数中含有long类型时,两个操作数中非long类型会自动转换为long类型,再参与运算,返回结果为long;
虽然上面列出这么多种情况,但归纳下不难记住。
即:除了自增加自减不进行转化外,其它情况都是无long型时,所有非int类型转成int类型;有long类型时,都转成long类型
一、算术运算符
单目运算符:+(取正)-(取负) ++(自增1) --(自减1)1.1 +(取正)-(取负)
当操作数是 byte, short,char 时,会自动转化为int类型;返回结果为int。当操作数是int, long时,不转化,原来是啥类型,还是啥类型。
1.2 ++(自增1) --(自减1)
不管操作数是啥类型,不转化。双目运算符:+ - * / %(取余)
1.3 + - * / %(取余)
当两个操作数中没有long类型时,两个操作数中非int类型会先自动转换为int类型,再参与运算,返回结果为int;当两个操作数中含有long类型时,两个操作数中非long类型会自动转换为long类型,再参与运算,返回结果为long;
二、位运算符
位运算符:&(与)、|(或)、^(异或)、~(非)、<< (带符号左移)、 >>(带符号右移)、 >>> (无符号右移)2.1 &(与)、|(或)、^(异或)
与1.3情况相同2.2 ~(非)
与1.1情况相同2.3 << (带符号左移)、 >>(带符号右移)、 >>> (无符号右移)
与1.1情况相同虽然上面列出这么多种情况,但归纳下不难记住。
即:除了自增加自减不进行转化外,其它情况都是无long型时,所有非int类型转成int类型;有long类型时,都转成long类型
相关文章推荐
- java对byte,short,char,int,long运算时自动类型转化情况说明
- java对byte,short,char,int,long运算时自动类型转化情况说明
- 类型转换问题(java会把byte,short和char的运算操作转换为int类型即低精度自动向高精度转换)
- java 基本数值类型:byte short int long float double char
- Java基础-数据类型int,short,char,long,float,double,boolean,byte
- C的无符号数据类型int,short,byte 转为 Java对应的数据long,char,short
- C的无符号数据类型int,short,byte 转为 Java对应的数据long,char,short
- java中byte,short,char,int,long运算
- java byte、short、int、long、float、double、char基本数据类型范围
- C的无符号数据类型int,short,byte 转为 Java对应的数据long,char,short
- Java八种基本类型(byte、short、int、long、浮点数、char、boolean、基本类型转换)
- JAVA的数组 && 原始类型和引用类型以及String与int long相互转化 && String与byte[]相互转化
- java 彻底理解 byte char short int float long double
- 【C#】数据类型(sbyte,byte,short,ushort,int,uint,long,ulong和char。、、、)
- Java中byte数组与short,int,char,long,float,double之间的转换
- java 彻底理解 byte char short int float long double (转)
- 数据类型 -- char , unsigned char = BYTE, short, unsigned short = WORD, long, unsigned long = DWORD, int , unginged int = UINT
- JAVA 各种数值类型最大值和最小值 Int, short, char, long, float,&nbs
- java 彻底理解 byte char short int float long double
- Java中涉及byte、short和char类型的运算操作