在进行二元计算的时候,先将两个操作数转换为同一种类型,再计算
①
如果两个数中有一个是double类型的,那么另一个也将转换为double类型;
②
如果两个数中有一个是float类型的,那么另一个也将转换为float类型;
③
如果两个数中有一个是long类型的,那么另一个也将转换为long类型;
④
否则,两个操作数都将被转换为int类型
3.5.5
类型转换
①
强制类型转换.
新类型 变量名= (新类型)原变量;
将int类型转换不double类型是看自动进行的,而double转换不int需要强制类型转换.
例:
double x=0.999;
int n=(int)x; //
强制类型转换是通过截断小数部分转换不整型的
②
字符串转换为其它类型
xxx n=Xxxxx.parseXxx(
原变量)
String str1=”123”;
int n=Integer.parseInt(str1);
字符串转换为byte、short、int、long、float、double类型,参考Byte、Short、Int、Long、Float、Double类的parseXxx方法
③
基本类型与其包装器类之间的转换
包装器类 对象变量名=new 包装器类(基本类型变量);
基本类型 基本类型变量名=对象变量名
.
基本类型Value();
例:
int i=1;
Integer io=new Integer(i);
int b=io.intValue();
④
数据转换为String类型
String str1=””+
基本类型变量;
⑤
十进制到其他进制的转换
Integer.toBinaryString(int i); //
十进制 转换成二进制
Integer.toHexString(int i); //
十进制 转换成十六进制
Integer.toOctalString(int i); //
十进制 转换成八进制
toString(int/long i, int radix)
方法,可以将一个十进制数转换成任意进制的字符。
byte, short, float
和double等数据类型,可以利用Integer或者Long的toBinaryString, toHexString, to OctalString和toString方法转换成其他进制的字符串。
⑥
其它进制到十进制的转换
Integer.valueOf("1000",
几进制);
Integer
和Long类的valueOf(String source, int r)方法,可以将任意进制的字符串转换成十进制数据。
⑦
字节数组与数据类型的转换
整型转换为字节数组,其它类型参考此例
例1:
public static byte[] InttoByteArray(int n)
{
int tmp = n;
byte[] b=new byte[4];
b[3]=new Integer(tmp).byteValue();
tmp=tmp>>8;
b[2]=new Integer(tmp).byteValue();
tmp=tmp>>16;
b[1]=new Integer(tmp).byteValue();
tmp=tmp>>24;
b[0]=new Integer(tmp).byteValue();
return b;
}
例2:
public static byte[] InttoByteArray(int n)
{
int tmp1 = n;
byte[] b=new byte[4]; //
整型需要4个字节存储
for (int i = b.length - 1; i >=0; i--)
{
//int
的后8位转换为byte型
b[i] = new Integer(tmp1).byteValue();
tmp1 = tmp1 >> 8;
}
return b;
}
字节数组转换为整型,其它类型参考此例
byte[] b=new byte[4];
b[0]=0;
b[1]=0;
b[2]=39;
b[3]=16;
public static int toInteger(byte[] b)
{
int s=0;
s=b[0] * 256 * 256 * 256 + b[1] * 256 * 256 +b[2] * 256+b[3];
return s;
}
⑧
boolean
类型转换为String
例一:Boolean b=true;
String str1=b.valueOf(b);
例二:
Boolean b=new Boolean(true);
String str2=b.toString();