Java中涉及byte、short和char类型的运算操作
2009-07-09 15:45
459 查看
Java中涉及byte、short和char类型的运算操作首先会把这些值转换为int类型,然后对int类型值进行运算,最后得到int类型的结果。因此,如果把两个byte类型值相加,最后会得到一个int类型的结果。如果需要得到byte类型结果,必须将这个int类型的结果显式转换为byte类型。例如,下面的代码会导致编译失败:
class BadArithmetic {
static byte addOneAndOne() {
byte a = 1;
byte b = 1;
byte c = (a + b);
return c;
}
}
当遇到上述代码时,javac会给出如下提示:
type.java:6: possible loss of precision
found : int
required: byte
byte c = (a + b);
^
1 error
为了对这种情况进行补救,必须把a + b所获得的int类型结果显式转换为byte类型。代码如下:
class GoodArithmetic {
static byte addOneAndOne() {
byte a = 1;
byte b = 1;
byte c = (byte)(a + b);
return c;
}
}
该操作能够通过javac的编译,并产生GoodArithmetic.class文件。
class BadArithmetic {
static byte addOneAndOne() {
byte a = 1;
byte b = 1;
byte c = (a + b);
return c;
}
}
当遇到上述代码时,javac会给出如下提示:
type.java:6: possible loss of precision
found : int
required: byte
byte c = (a + b);
^
1 error
为了对这种情况进行补救,必须把a + b所获得的int类型结果显式转换为byte类型。代码如下:
class GoodArithmetic {
static byte addOneAndOne() {
byte a = 1;
byte b = 1;
byte c = (byte)(a + b);
return c;
}
}
该操作能够通过javac的编译,并产生GoodArithmetic.class文件。
相关文章推荐
- Java中涉及byte、short和char类型的运算操作
- Java中涉及byte、short和char类型的运算操作
- 类型转换问题(java会把byte,short和char的运算操作转换为int类型即低精度自动向高精度转换)
- java对byte,short,char,int,long运算时自动类型转化情况说明
- java对byte,short,char,int,long运算时自动类型转化情况说明
- Java 对byte,short,char,int,long 运算时自动类型转化情况说明
- java byte、short、int、long、float、double、char基本数据类型范围
- java中byte char short类型数据的操作说明
- C的无符号数据类型int,short,byte 转为 Java对应的数据long,char,short
- 关于java中的char, byte, short的移位操作
- 关于java中char,byte,short的移位操作
- 关于java中char,byte,short的移位操作
- byte,short,char类型的运算
- 关于java中char,byte,short的移位操作
- Java基础-数据类型int,short,char,long,float,double,boolean,byte
- java可以做switch case的只有int类型,和可以自动类型转换为int的byte, char,short
- java 基本数值类型:byte short int long float double char
- 关于java中char,byte,short的移位操作
- Java八种基本类型(byte、short、int、long、浮点数、char、boolean、基本类型转换)
- C的无符号数据类型int,short,byte 转为 Java对应的数据long,char,short