总体思想 各个类型转换 由位数少的 转为位数多的
byte short char–int --long —float–double
8-16-32-64 整数型—小数型
字符串是最大的
这中间,int是32位 float也是32位 ,这个转换 不知道咋搞的???
百度知道
这样子来讲:float和int都是固定长度的,4字节(32位机子)
int是精确的,超出范围就溢出了。数据错误了。
而float并不是单纯的101010这样存储,是把4个字节划分为
符号位,指数位,尾数位 比如1.123123*10^35;
3个部分固定的,因为有指数,存储的范围当然比int大了。
但是3个部分也有范围限制,所以当你精度值越大时,月不精确了。
- 案例一
char 和int时,会自动转成整数 char a =‘a’;int b = a+1;
一般来说,int转成char时,是从高位转成低位,需要强制转换,但是编译器比较好,能够不写也可以转换。
char a = 97;
等价于
char a = (char) 97;
- 案例二
a+b+c+d 一般来说,从前往后+,可能显示int 后是啥 最后是啥的
验证(加上字符串的东西,因为字符串的优先级 最高!!!!):
‘a’+2.6+1+“”+‘a’+‘a’
前面的加号先运行,得到一个double类型 ‘a’=97 97+2.6+1=100.6 后面的char变为字符串,字符串再加字符串,即(字符+double)double+字符串-->字符串+字符-->字符串 字符串的优先级最高,其次浮点,其次整形
于是最后是
100.6aa
而如果不是字符串,是个空字符,'a'+2.6+1+' '+'a'+'a'
中间是一个空字符,那么最终结果就是一个double类型的数。
326.6