新手提问:Java中为什么bety、char、short不能互相隐转换?

No_Hello_World 2011-03-07 12:59:04
书上说bety、char、short之间不能互相转换,它们之间要计算只能先全都转换成int型后才能行。

bety占8位,取值范围为:-128~127。
short占16位,取值范围为:-32768~32767.
照这样看bety型应该可以转隐换成short啊?

另外请大虾们把各种基本数据类型的存储关系图画出来,不胜感激!
...全文
1654 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
muzi_hao 2012-02-20
  • 打赏
  • 举报
回复
我想知道char和short可不可以自动转换呀,是不是要强制类型转换啦。
请赐教。
keeya0416 2011-03-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ticmy 的回复:]
“说byte、char、short之间不能互相转换”

我现在才明白语文是一切讨论的基础。。。。
[/Quote]
可能是我理解错了
但楼主的
照这样看bety型应该可以转隐换成short啊?
太误导人了 我也只是针对句话就下结论了
java0919 2011-03-07
  • 打赏
  • 举报
回复
char 和 byte不是一个概念的

byte a = (byte)'b';

这个是成立的 char型就是一个单字符 直接强制类型转换就可以完成转换成1个字节的byte。 因为char的定义就是1字节。

所以互换方式就是强制转换
byte a = (byte)'c';
char b = (char)a;
System.out.println(b);

char在java中可以直接取值来表示
char b = (char)100;
System.out.println(b);
结果是d
龙四 2011-03-07
  • 打赏
  • 举报
回复
“说byte、char、short之间不能互相转换”

我现在才明白语文是一切讨论的基础。。。。
ma309385560 2011-03-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 keeya0416 的回复:]
Java code

byte b =127;
short s = b;


这个不算是隐式转换么。
[/Quote]

同意
keeya0416 2011-03-07
  • 打赏
  • 举报
回复

byte b =127;
short s = b;

这个不算是隐式转换么。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧