黑马程序员技术交流社区

标题: char类型和int类型之间的转换问题 [打印本页]

作者: 乔玉吉    时间: 2012-3-17 00:14
标题: char类型和int类型之间的转换问题
怎样让char类型的转换成int类型,和int类型的转换成char类型?最好举个例子.
作者: 叶绍亮    时间: 2012-3-17 00:22
char c = ‘A’;

int i = c;

//反过来只要作强制类型转换就行了

c = (char) I;

作者: 黑马肖凯骏    时间: 2012-3-17 00:28
char a='a';
                       int b=100;
                       int s=(int)a;强制类型转换即可完成
作者: 薛波    时间: 2012-3-17 08:38
 关于类型的自动提升,遵循下边的规则:
    所有的 byte 、 short 、 char 类型的值将提升为 int 类型;
  如果有一个操作数是 long 类型,计算结果是 long 类型;
  如果有一个操作数是 float 类型,计算结果是 float 类型;
  如果有一个操作数是 double 类型,计算结果是 double 类型;
   顺序:      byte -> short(char) -> int -> long -> float -> double
  当两个类型进行自动转换的时候,需要满足条件:【 1 】这两种类型是兼容的,【 2 】目的类型的数值范围应该比源转换值的范围要大。而拓展范围就遵循上边的自动类型转换树,当这两个条件都满足的时候,拓展转换才会发生,而对于几个原始类型转换过程,根据兼容性 boolean 和 char 应该是独立的,而其他六种类型是可以兼容的,在强制转换过程,唯独可能特殊的是 char 和 int 是可以转换的,不过会使用 char 的 ASCII 码值比如:
int a = (int)'a';
a 的值在转换过后输出的话,值为 97 ;


作者: 杨华威    时间: 2012-3-17 08:53
强转char转换成int使用(int)char;
char x=‘a’;
System.out.println((int)x);
那么a强转成int后结果为97;
反之则依然:
int x=97;
System.out.println((char)x);
把x强转成char类型后结果为a;

具体转换值可以参考ASCII 码表。
作者: 刘_浩    时间: 2012-3-17 09:47
int型转换为char的是(char)+式子。这是强转。char w=a;b=w+1。这里的w就会转换为int和1保持一致,再进行计算。




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