JAVA简单问题,高手进下帮帮忙,谢谢! 20

publicclassE{publicstaticvoidmain(Stringargs[]){for(inti=20302;i<20322;i++){System.ou... public class E
{
public static void main(String args[])
{
for(int i=20302;i<20322;i++)
{
System.out.println((char)i);
}
}
}
这短程序中System.out.println((char)i); 中的((char)i); 是什么意思?运行结果是什么?为什么是这样的结果?
展开
 我来答
世界杯2009
2011-07-09 · TA获得超过645个赞
知道小有建树答主
回答量:327
采纳率:50%
帮助的人:259万
展开全部




















这是运行结果,解释:i是从20302开始循环,然后将其强转成char类型进行输出,由于你直接把int类型赋值给char类型,就相当于你把ASCII码直接赋值给了char类型,所以打印出来的是ASCII码所对应的汉字
追问
((char)i); 
这样就是直接把int类型赋值给char类型吗?
追答
正确的声名赋值:char ch = 'abc';
(char)i是表示把int类型强制转换成char类型
还有另外一种方式:char ch = (char)(int类型的数值或者变量)
etxero
2011-07-09 · TA获得超过199个赞
知道答主
回答量:55
采纳率:0%
帮助的人:82.7万
展开全部
(char)i 这是强制转换类型

这里面存在一个问题,i 是int类型的
从高类型往低类型转存在精度丢失的问题
正常情况下都是从低类型往高类型转

而且这代码执行后,结果为unicode

中文中每一个中文字符都对应一个unicode
java语言中,字符统一采用Unicode编码,每个字符占两个字节,所以可以用十六进制编码形式表示。
java语言把字符作为无符号的整数对待,所以可以参与整数的相应运算

楼主程序 char型变量被当成了一个无符号的整数来运算
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lp503609
2011-07-09 · TA获得超过436个赞
知道小有建树答主
回答量:67
采纳率:0%
帮助的人:96万
展开全部
1:((char)i)是将int类型的数据强制转换成char字符.
2:打印的先是ASCII码然后是UTF—8亚洲地区的通用单字符了(和默认的编码方式的字符)。或者说是乱码字符了
首先:你要理解ASCII码得来历和作用.
ASCII码因为计算机中底层只有数字,所以前人为了方便就用数字代表字符了,这是一个硬性规定没有为什么,目前这是一个java中的一个运用.

参考资料: http://baike.baidu.com/view/15482.html?wtp=tt

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d44faec
2011-07-09 · TA获得超过640个赞
知道小有建树答主
回答量:699
采纳率:0%
帮助的人:224万
展开全部
(char)i的意思是将整型的i强制转换为char(字符)型。运行结果是十几个汉字,还有几个空格。这是字符编码的原因
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
霜冻三尺
2011-07-09
知道答主
回答量:97
采纳率:0%
帮助的人:34.9万
展开全部
i是从20302到20321,(char)i应该取的是ACII码为20302到20321的字符,你把i设置为97看看输出的是不是a
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
简书藏经阁
2011-07-09
知道答主
回答量:36
采纳率:0%
帮助的人:13万
展开全部
(char)是将i强转成字符型,运行结果就不写出来了,这个循环20次我才不蛋疼给你打出来。去看一下循环的原理
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式