标题:小弟有一题不解?
只看楼主
chufanggang
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-1-23
 问题点数:0 回复次数:13 
小弟有一题不解?

我的这个题目很有意思!


public class dd
{


public static void main(String [] aa)
{
char c='a';
int i=c;
float f=i++;
byte b=(byte)(f+1);

System.out.print(c+","+i+","+f+","+b);

}



}

你先不运行计算结果(a 的阿斯克码值是97)?

如果有谁计算出来的,而且讲的出来原因的告诉我一下
我对这个题目还搞的不是很 懂。

搜索更多相关主题的帖子: byte public float 
2007-02-06 23:05
NiceGirl
Rank: 2
等 级:新手上路
威 望:4
帖 子:909
专家分:0
注 册:2006-6-18
得分:0 
以下是引用chufanggang在2007-2-6 23:05:55的发言:

我的这个题目很有意思!


public class dd
{


public static void main(String [] aa)
{
char c='a'; //这里c是97
int i=c; //这里i是97
float f=i++; //这里f是97,因为i++是先赋值后加1
byte b=(byte)(f+1); //这里f还是97,加1等于98,而这里因为上一句的i++,所以到这里i等于98
//运算符优先级的问题
System.out.print(c+","+i+","+f+","+b);

}



}

你先不运行计算结果(a 的阿斯克码值是97)?

如果有谁计算出来的,而且讲的出来原因的告诉我一下
我对这个题目还搞的不是很 懂。


曾经以为百般艰难,蓦然回首,才发现已飞渡千山。。!
2007-02-06 23:27
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
得分:0 
哈哈哈哈~~又见NickGirl上来了,恩恩,继续吵架

淘宝杜琨
2007-02-06 23:32
NiceGirl
Rank: 2
等 级:新手上路
威 望:4
帖 子:909
专家分:0
注 册:2006-6-18
得分:0 
少来,我可没这闲功夫

曾经以为百般艰难,蓦然回首,才发现已飞渡千山。。!
2007-02-06 23:47
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
得分:0 
啊~~~~以前我们吵得是多么欢

淘宝杜琨
2007-02-06 23:48
Java
Rank: 1
等 级:新手上路
帖 子:718
专家分:0
注 册:2007-1-29
得分:0 

技术区严禁灌水


Java,My Love!
2007-02-07 07:43
风月_无边
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:60
帖 子:2959
专家分:652
注 册:2007-1-19
得分:0 
类型都不一样,怎么可以加到一起.

我的网站 http://www.
2007-02-07 10:20
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
得分:0 
以下是引用风月_无边在2007-2-7 10:20:02的发言:
类型都不一样,怎么可以加到一起.

int 是可以隐式转成 float 的!


老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2007-02-07 10:24
风月_无边
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:60
帖 子:2959
专家分:652
注 册:2007-1-19
得分:0 
呵呵! 试试写错了一个,把c写成了97,大意

我的网站 http://www.
2007-02-07 11:10
limaoyuan
Rank: 1
等 级:新手上路
帖 子:493
专家分:0
注 册:2006-6-25
得分:0 
以下是引用chufanggang在2007-2-6 23:05:55的发言:

我的这个题目很有意思!


public class dd
{


public static void main(String [] aa)
{
char c='a';
int i=c; // 这里为什么i=98?? 如果写成System.out.println((int)c);这样打出的是97.............等高人来指点一下
float f=i++;
byte b=(byte)(f+1);

System.out.print(c+","+i+","+f+","+b);

}



}

你先不运行计算结果(a 的阿斯克码值是97)?

如果有谁计算出来的,而且讲的出来原因的告诉我一下
我对这个题目还搞的不是很 懂。


我在说's blog   http://www..cn
2007-02-07 17:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-119975-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.573569 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved