初学者问题

qiule520 2009-08-01 11:18:02
刚学java, 整数2怎么可以和字符'2'相加, 请大家指教

Char i=2+ ’2’;
System.out.printIn(i); //结果为4
...全文
217 15 打赏 收藏 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wu_jia_08 2009-08-04
  • 打赏
  • 举报
回复
java自动类型转换的规则
1.数据类型兼容
2.目标类型大于源类型

xuyangtiger1 2009-08-04
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wubin_2003 的回复:]
引用楼主 qiule520 的回复:
刚学java,  整数2怎么可以和字符'2'相加,  请大家指教

Char i=2+  ’2’;
System.out.printIn(i);    //结果为4

int,short,byte,char 这4中类型在进行运算的时候类型自动转换成int类型(因为int类型级别高于其他3个的级别,也就是运算时候低级类型要向高级类型转换的原则[
那么自然char在这个数值运算过程中,自动转换成int型.i=2+'2'-->i=2+2-->i=4-->over
基本概念要搞清楚,数学运算中类型低的自动转换成类型高的:
int <long <flout <double,再送你4句话用于运算类型转换:1,如果两个操作数中有一个事double类型,另一个操作数会自动转换成double类型的。2,否则,如果其中一个事flout型的,另一个会自动转成flout型的3,否则,其中一个是long型的,另一个自动转换成long型的。4,否则,2二个操作数都将被转换成int类型的。    这里的4,也就是你的题目了,你的两个操作数都会自动变成int类型的 所以是4
[/Quote]
very good!偶明白了,谢谢!
danier9687 2009-08-03
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wubin_2003 的回复:]
引用楼主 qiule520 的回复:
刚学java,  整数2怎么可以和字符'2'相加,  请大家指教

Char i=2+  ’2’;
System.out.printIn(i);    //结果为4

int,short,byte,char 这4中类型在进行运算的时候类型自动转换成int类型(因为int类型级别高于其他3个的级别,也就是运算时候低级类型要向高级类型转换的原则[
那么自然char在这个数值运算过程中,自动转换成int型.i=2+'2'-->i=2+2-->i=4-->over
基本概念要搞清楚,数学运算中类型低的自动转换成类型高的:
int <long <flout <double,再送你4句话用于运算类型转换:1,如果两个操作数中有一个事double类型,另一个操作数会自动转换成double类型的。2,否则,如果其中一个事flout型的,另一个会自动转成flout型的3,否则,其中一个是long型的,另一个自动转换成long型的。4,否则,2二个操作数都将被转换成int类型的。    这里的4,也就是你的题目了,你的两个操作数都会自动变成int类型的 所以是4
[/Quote]
学习了
vipboyvipboy 2009-08-02
  • 打赏
  • 举报
回复
写得真好,偶们菜菜都懂了..谢谢..
xucan2087 2009-08-02
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wubin_2003 的回复:]
引用楼主 qiule520 的回复:
刚学java,  整数2怎么可以和字符'2'相加,  请大家指教

Char i=2+  ’2’;
System.out.printIn(i);    //结果为4

int,short,byte,char 这4中类型在进行运算的时候类型自动转换成int类型(因为int类型级别高于其他3个的级别,也就是运算时候低级类型要向高级类型转换的原则[
那么自然char在这个数值运算过程中,自动转换成int型.i=2+'2'-->i=2+2-->i=4-->over
基本概念要搞清楚,数学运算中类型低的自动转换成类型高的:
int <long <flout <double,再送你4句话用于运算类型转换:1,如果两个操作数中有一个事double类型,另一个操作数会自动转换成double类型的。2,否则,如果其中一个事flout型的,另一个会自动转成flout型的3,否则,其中一个是long型的,另一个自动转换成long型的。4,否则,2二个操作数都将被转换成int类型的。    这里的4,也就是你的题目了,你的两个操作数都会自动变成int类型的 所以是4
[/Quote]很详细了
wubin_2003 2009-08-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 qiule520 的回复:]
刚学java,  整数2怎么可以和字符'2'相加,  请大家指教

Char i=2+  ’2’;
System.out.printIn(i);    //结果为4
[/Quote]
int,short,byte,char 这4中类型在进行运算的时候类型自动转换成int类型(因为int类型级别高于其他3个的级别,也就是运算时候低级类型要向高级类型转换的原则[
那么自然char在这个数值运算过程中,自动转换成int型.i=2+'2'-->i=2+2-->i=4-->over
基本概念要搞清楚,数学运算中类型低的自动转换成类型高的:
int<long<flout<double,再送你4句话用于运算类型转换:1,如果两个操作数中有一个事double类型,另一个操作数会自动转换成double类型的。2,否则,如果其中一个事flout型的,另一个会自动转成flout型的3,否则,其中一个是long型的,另一个自动转换成long型的。4,否则,2二个操作数都将被转换成int类型的。 这里的4,也就是你的题目了,你的两个操作数都会自动变成int类型的 所以是4
bigbug9002 2009-08-01
  • 打赏
  • 举报
回复
byte i='2'+2;
运算时,把'2'和2都看到int,再做加运算,结果的最高的3个字节被截去,只把最低的一个字节的的值赋给i
筱伟 2009-08-01
  • 打赏
  • 举报
回复
char->int,运算!
qiule520 2009-08-01
  • 打赏
  • 举报
回复
请问下
byte i='2'+2;
System.out.print(i);
byte在参加运算时自动转换为int,
byte i='2'+2; 这样写如何理解


shangyubiao 2009-08-01
  • 打赏
  • 举报
回复
2+‘2’= 52
52为ascii码,其对应的值为4,你可以用30+‘2’测试一下,就会更了解了
bigbug9002 2009-08-01
  • 打赏
  • 举报
回复
char参与数值运算时,要转为int型.就是用字符的unicode来参与运算。
zhangyong20081204 2009-08-01
  • 打赏
  • 举报
回复
char和short都是16位类型Unicode字符,所以它int类型的2相加,自动转换到ASC II码。52.
这和下面的程序一样:
char a='a';//ASCII码为65;
int x=a;
x++;
char b=(char)x;
System.out.println(b);
b的ASCII码就是66.也对应着b,
KingWolfOfSky 2009-08-01
  • 打赏
  • 举报
回复
char 就是 int啊~~~
字符编码中2+’2’='4'
System.out.printIn(i)就输出'4'咯~~
yanwudingkou 2009-08-01
  • 打赏
  • 举报
回复
是向上转型的问题~~~~~~~
苍昊一瞥 2009-08-01
  • 打赏
  • 举报
回复
byte在参与运算时有个自动提升的过程

62,620

社区成员

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

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