public static void main(String[] args) {
char c = '0';
System.out.println(c + 1);
}
上面两行简单的代码,结果是什么?
答案是49,整型、字符型、浮点型的数据在混合运算中相互转换,容量小的类型自动转换为容量大的类型,数据类型按容量大小排序为byte,short,char–>int–>long–>float–>double,byte、short、char、类型之间不会进行相互转换,计算时自动转换为int类型,另外,char类型转为int的值为字符的ASCII值,而不是字符值,
常用到的ASCII值
字符值 | ASCII值 |
---|---|
a | 97 |
z | 122 |
A | 65 |
Z | 90 |
0 | 48 |
9 | 57 |
char类型的数转换成对应的字符值方法
1、进行-'0’操作,如字符’5’变成int类型的5
char c = '5';
int i = c - '0';
2、先将字符转换成String类型,再调用parseInt()方法
String s = Character.toString(c);
int i = Integer.parseInt(s);
容量大的数据类型转换成容量小的数据类型时,要加上强制转换符,整数默认为int类型,所以当定义一个大于int类型最大值的数,末尾必须加上l,浮点型数默认为double型,声明一个float类型的数时数末尾必须加f。
java中,对一个负数取余还是负数,一个负数除以一个正数还是一个负数。