Java基础之数据类型

数据类型

进制之间的转换

十进制 二进制(0B) 八进制(0) 十六进制(0X)之间的转换

十进制转二进制:除2到取余

二进制转八进制:从最右边开始,三位一组,换算成十进制的值

二进制转十六进制:从最右边开始,四位一组,换算成十进制的值

浮点型float和double

计算机中存储3.14

小数涉及:整数部分 小数部分 . 正负号

1、小数部分转成二进制,是乘2取整数部分

3.14----》11.00100...

2、科学计数法表示

1.100100...*n的1次方

科学计数法,整数部分永远是1,小数点也不用存储,只存三个内容:正负号,几次方,小数点部分。

float:4个字节, 最高位符号位,8位存指数,其他小数部分

double:8个字节, 最高位符号位,11位存指数,其他小数部分

3、浮点类型不稳定,因为十进制转二进制,小数点需要会舍掉一些

4、float类型存的范围其实比long还要大,因为浮点型的底层存储的是指数

基本数据类型转换

1、隐性转换:数值类型,如果小的类型可以转成大的类型,大的类型不可以转成小的

2、强制转换:运用于字符和数值型,强制转成想要的,例如int a=(int)10.0,缺点:会溢出,缺失精度

3、两个byte,short,char类型相加,产生编译错误

byte a = 1;

byte b = 1byte c = a + b;   //因为byte底层还是用Int进行运算

//同理short,char也会转成Int类型

4、字符串类型

任何类型和字符串拼接,都会转成字符串类型

char c1 = '0';

char c2 = '1';

System.out.println(c1+c2+""); //97

System.out.println(""+c1+c2); //01

System.out.println(c1+""+c2); //01

//算法运算用左往右,所以c1+c2按照求和运算,char+char=int, 所以结果是97
//""+c1 是按照拼接运算,字符串+char=字符串

 

posted @ 2019-11-14 19:30  木木子木木呀  阅读(97)  评论(0编辑  收藏  举报