黑马程序员技术交流社区

标题: 数据转换问题 [打印本页]

作者: strongmanzxh    时间: 2016-4-8 23:55
标题: 数据转换问题
数据大的转制数据小的 前面要加数据类型标识符号,而数据小的转大的为什么不用?
作者: strongmanzxh    时间: 2016-4-14 16:52
没人知道吗?
作者: 小海龙    时间: 2016-4-14 18:18
呵呵,这个问题问的好
作者: zc5689    时间: 2016-4-14 19:07
底层自动转换了  
作者: Joschi    时间: 2016-4-14 19:07
因为小的数据都在大范围的数据内了啊,大的已经包括小的了   干嘛还要强制的转换呢  直接拿来用就可以不会出问题。
作者: zxw    时间: 2016-4-14 19:11
自动转换,小瓶子里的水倒入大瓶子里,直接到就行了;大瓶子的倒入到小瓶子,可能装不下(损失精度),因此会强转
作者: Vintagecheese    时间: 2016-4-14 19:25
请参考隐式数据类型转换 (自动数据类型提升)
byte -> short -> int -> long -> float -> double
               char -> int -> long -> float -> double
道理就如楼上所说
作者: liunianruoshui    时间: 2016-4-14 21:16
系统自己会处理!
作者: 740376427    时间: 2016-4-14 21:27
小的 提升为大的 不会损失 精度 所以 不需要 强转
作者: huhemingtiancai    时间: 2016-4-14 23:06
不为什么,规则而已
作者: 晴苑    时间: 2016-4-14 23:20
系统帮你自动转换了啊,小的那是肯定在大的范围里,干嘛还要强制转化?
作者: 泪无痕    时间: 2016-4-14 23:38
自动数据类型提升,例如,由byte类型转为int类型,由1字节转为4字节,要强转。而由int类型转为byte类型,1字节承受不了4字节,必须强转,以免损失精度
作者: liuchenguangqnm    时间: 2016-4-14 23:45
因为不同的数据类型,内存空间都是有限的,byte类型只有8个二进制数来表示数值,而int有32个二进制数值来表示。
所以取值范围大的数据类型转型为取值范围小的,可能会出现超出最大值的问题,因此必须强转,而且强转可能损失精度。
而取值范围小的数转型为取值范围大的数,并不会出现超出最大值的问题,所以无需强转。
作者: 倚码可待    时间: 2016-4-15 13:23
为什么不能只有一个字符类型和一种数字类型,,,,内存是大问题




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2