java篇4-java的数据转换2021-10-13
一、java的数据类型转换Java的数据类型取值范围排序byteshortintlongfloatdouble1.自动类型转换隐式规则数据范围从小的转化为大的。如int-long,long num 100;隐式转换在算数运算中的运用1取值范围小的和取值范围大的进行运算小的会先提升为大的再进行运算。2byte、short、char三种类型的数据在运算时都会直接先提升为int然后再进行运算。注意这里的数据范围不是存储大小例如long类型(占8字节可以隐式转换为float类型占4个字节。下例的输出结果为30.0。2.强制类型转化显式数据范围从大的转化为小的不符合自动类型转化的转换方式 如:int num 100L;//报错格式范围小的类型 范围小的变量名 范围小的类型原来范围大的类型如int num (int) 100L;//不报错PS上例的强制类型转换可以完成是因为原来范围大的类型的数据值没有超过转换成的数据类型的范围若是超过了强制转换会溢出溢出不会报错但是转换后数据的值会改变或者精度损失所以强制转换不推荐使用。例外如:char a 65;//不报错虽然int类型的数据范围比char类型大。这个例外只对常量有用含有变量不行。例如short a1;short b2;short cab;//报错a和b相加时自动转换为int型结果为int型报错。下例输出结果为33.bool类型不能进行数据类型转换bool类型的true和flase不能当作1和0对待。4.ASCII码字符的操作当进行“字符字符”或“字符数字”的操作时会把字符通过ASCII码表查询到对应的数字再进行计算。下例输出结果为20013有的编译器下会报错补充int和float比较int 和 float 在 Java 中都占用 4 字节32 位但它们的表示范围确实不同int范围约 -21 亿 到 21 亿-2³¹ 到 2³¹-1float范围约 ±3.4×10³⁸远大于 int两者的存储方式不同int 使用定点数表示采用 二进制补码 格式第 1 位符号位后 31 位数值位所以它只能表示 2³² 个离散的整数值没有小数部分每个值精确但范围有限。float 采用 IEEE 754 单精度浮点数 格式第 1 位符号位接下来 8 位指数位最后 23 位尾数位它通过 科学计数法二进制来存储值 (-1)^符号 × (1 尾数) × 2^(指数 - 127)这种设计让它可以表示非常大和非常小的数但代价是精度有限只能精确表示约 6–7 位有效十进制数字并非所有整数都能精确表示超过 2²⁴ 的整数开始出现精度损失关键理解范围大不等于精度高int 范围小但 所有整数精确float 范围大但 精度有限不能精确表示所有 int 范围内的整数尤其超过 2²⁴ 时例子inta16777217;// 2^24 1floatba;System.out.println((int)b);// 输出 16777216精度丢失二、java的字符串的操作当操作中出现字符串时进行的是字符串拼接操作。多个运算从左到右运算
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2442959.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!