1、进制
整型常量的三种表示形式:
◆十进制整数,如:12,-314,0。
◆八进制整数,要求以 0 开头,如:012。
◆十六进制数,要求 0x 或 0X 开头,如:0×12。
进制的意思表示满了那个值就需要往前进一位。比如10 进制,9 再加 1 的话就成了10
a.十进制转二进制
方法是:连续除以 2 【除以 2 得到余数,然后用得到的商继续除以 2 最后在再反转余数】
b.二进制转十进制
二进制1010
每一位的从右到左的单位分别是2的0次方,2的1次方,2的2次方,2的3次方所以二进制1010等于每一位上的数字*单位在相加。
结果是10。
c.其他
10进制转16以及8以及2都是除以对应的进制的值
16以及8以及2进制转成10进制都是每一位上的数字*单位
8进制转成16进制,需要先把8进制转成10进制然后在转成16进制
eg.
16进制abcdef分别表示101112131415
2、基本类型之间的转换
*boolean类型不可以转换为其他的数据类型。
a.整形,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则:
◆容量小的类型自动转换为容量大的数据类型;数据类型按容量大小排序为:byte,short,char->int->long->float->doublebyte,short,char之间不会互相转换,他们三者在计算时首先回转换为int类型
(比如int和long类型进行运算会把int先先转成long以此类推)
◆容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出,使用时要格外注意。
◆强制转换语法
数据类型变量名=(数据类型)被转数据值;
//double类型数据强制转成int类型,直接去掉小数点。
int i=(int)1.5;
◆有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后再进行计算。
◆小数常量(如:1.23)默认为double
◆整数常量(如:123)默认为int
示例代码
public class TestConvert{
public static void main(Stringarg[]){
int i1=123;
int i2=456;
double d1=(i1+i2)*1.2;//系统将i1和i2转换为double型进行计算
float f1=(float)((i1+i2)*1.2);//需要加强制转换符
byte b1=67;
byte b2=89;//系统将b1,b2先转换为int型运算,因为b3是byte,大转小需要强制转换符
byte b3=(byte)(b1+b2);
System.out.println(b3);
float f3=1.23f;//因为浮点类型默认是double申明为float后面的值必须加f
long l1=123;
long l2=30000000000L;//必须加l
float f=l1+l2+f3;//系统将转换为float型计算
long l=(long)f;//强制转换会舍去小数部分(不是四舍五入)
System.out.println(l);
}
}
文章评论