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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 石德志 于 2012-3-16 13:11 编辑

在Java中char 类型的数据占两个字节,byte型的数据占一个字节,short型数据占两个字节,为什么不能直接将byte 型或short型数据直接赋值给char 型数据?有这样的自动类型转换byte - short - char -int - long- float - double,直接赋值为什么不行?求解释

3 个回复

倒序浏览
内型转换要这么些写char=(char)byte;
回复 使用道具 举报
每种数据类型都是有取值范围的  char的取值范围是0-65535,数值型包括负数
byte b = 3;
char ch = b;
你直接把byte类型的变量赋给ch当然不行,因为b有可能是负数,超出了ch的取值范围
可以把一个确定的byte数值赋给ch
ch = (byte)3;
回复 使用道具 举报
段浩亮 发表于 2012-3-16 14:03
每种数据类型都是有取值范围的  char的取值范围是0-65535,数值型包括负数
byte b = 3;
char ch = b;

谢谢,经过验证果然如此,char的最小值是0,最大取值是65535,非常感谢啊


class Test {
public static void main(String [] args){
byte b = 12;
short s = 46;
char c = 788;
Character ch = c;
int minValue =  (int)ch.MIN_VALUE;
int maxValue = (int)ch.MAX_VALUE;
System.out.println(maxValue);//65535
System.out.println(minValue);//0

}
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马