A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© Dark_Knight 中级黑马   /  2014-12-8 20:22  /  3748 人查看  /  18 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double
这个大神的笔记里的,但是这个级别是按什么排列的,没看明白。

18 个回复

正序浏览

是不是因为byte和char,short体现到屏幕上都是两个字节,所以byte已经被提升了,所以他们是同一级的

评分

参与人数 1黑马币 +20 收起 理由
Dark_Knight + 20

查看全部评分

回复 使用道具 举报
。。。。路过
回复 使用道具 举报
你可以按各个类型的取值范围去理解
回复 使用道具 举报
byte:一字节(8位)   
short:两字节(16位)
int:四字节(32位)(一个字长)
long:八字节(64位)
float:四字节(32位)
double:八字节(64位)
从上往下,由低级向高级依此排序;
当运算中涉及到进制转换时,低级向高级转可以自动完成,高级向低级转则需要强制转(如输出65的ASCII码:char(65))
回复 使用道具 举报
二楼正解呀。
回复 使用道具 举报
Dark_Knight 发表于 2014-12-8 23:36
我明白了 谢谢,大神的笔记好像有个地方写错了,long——>float才对吧,我试过了float c = 1l;可以成立。 ...

恩,就是为了确保精度
回复 使用道具 举报
chudaming213 发表于 2014-12-8 23:19
这跟在屏幕上显示没有关系。 他应该强调的是向上提升,所谓“上”就得有个排列不是,排列的标准就是占用 ...

我明白了 谢谢,大神的笔记好像有个地方写错了,long——>float才对吧,我试过了float c = 1l;可以成立。但是long c = 1f就不能成立。
回复 使用道具 举报
Dark_Knight 发表于 2014-12-8 21:30
是不是因为byte和char,short体现到屏幕上都是两个字节,所以byte已经被提升了,所以他们是同一级的。 ...

这跟在屏幕上显示没有关系。 他应该强调的是向上提升,所谓“上”就得有个排列不是,排列的标准就是占用内存的大小,他写的这个就是按占用内存大小排列的顺序。因为每次运算后结果大小都不确定,为了保证能盛得了运算结果,就找个大点的容器吗,所以就向上提升了。“体现到屏幕上都是两个字节“你是怎么看出来的???
回复 使用道具 举报
是指占得字节数,也没什么平级的,byte一个Byet,char.short两个Byet,int,float四个Byet。long double八个Byet.
回复 使用道具 举报
Dark_Knight 发表于 2014-12-8 21:36
是只有byte被提升了吧

byte是一个字节,short和char是2个字节 int是四个字节。所以都会被提升为int
回复 使用道具 举报
你说的平级是指类型的自动提升吧?支持五楼说法!
回复 使用道具 举报
c91764000 发表于 2014-12-8 21:26
表达式的数据类型自动提升 所有的byte型、short型和char的值将被提升到int型。 如果一个操作数是long型,计 ...

是只有byte被提升了吧
回复 使用道具 举报
chudaming213 发表于 2014-12-8 20:55
按占用内存空间的大小吧。byte 八位 char short 十六位 int float 32位 long double 64位 ...

是不是因为byte和char,short体现到屏幕上都是两个字节,所以byte已经被提升了,所以他们是同一级的。
回复 使用道具 举报
表达式的数据类型自动提升 所有的byte型、short型和char的值将被提升到int型。 如果一个操作数是long型,计算结果就是long型; 如果一个操作数是float型,计算结果就是float型; 如果一个操作数是double型,计算结果就是double型 楼主可以按照这个思路去理解一下!
回复 使用道具 举报 1 0
Dark_Knight 发表于 2014-12-8 20:58
但是为什么byte和short是平级的呢

他说错了
回复 使用道具 举报
chudaming213 发表于 2014-12-8 20:55
按占用内存空间的大小吧。byte 八位 char short 十六位 int float 32位 long double 64位 ...

但是为什么byte和short是平级的呢
回复 使用道具 举报
按占用内存空间的大小吧。byte 八位 char short 十六位 int float 32位 long double 64位
回复 使用道具 举报
我觉得是按照,精度和占的字节排的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马