新手!!!java程序下标越界怎样处理?

publicclassTest{publicstaticvoidmain(String[]args){intnum=60;toHex(num);}publicstatic... public class Test {
public static void main(String[] args) {
int num=60;
toHex(num);

}
public static void toHex(int num)
{
char[] chs=new char[8];
int pos=chs.length-1;
for(int x=0;x<8;x++)
{
int n=num & 15;
if(n>9)
chs[pos]=((char)(n-10+'A'));
else
chs[pos]=((char)(n+'0'));
pos--;
num=num>>>4;
}
for(int x=7;x<chs.length;x--)
{
System.out.print(chs[x]+"");

}

}

}
这是十进制转十六进制代码,错误提示 下标越界,怎样解决?
展开
 我来答
紫薇参星
科技发烧友

2013-12-01 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3514万
展开全部
你的程序我帮你改完了,你看看吧.
完整的程序如下:
public class Test {
public static void main(String[] args) {
int num=60;
toHex(num);

}
public static void toHex(int num)
{
char[] chs=new char[8];
int pos=0;
for(int x=0;x<8;x++)
{
int n=num % 16;
if(n>9)
chs[pos]=((char)(n-10+'A'));
else
chs[pos]=((char)(n+'0'));
pos++;
num=num>>>4;
}
for(int x=7;x>=0;x--)
{
System.out.print(chs[x]+"");

}

}

}
运行结果:
0000003C
302652034_bai
2013-12-01 · TA获得超过4144个赞
知道大有可为答主
回答量:2206
采纳率:66%
帮助的人:1523万
展开全部
for(int x=7;x<chs.length;x--)
{
System.out.print(chs[x]+"");

}

问题在这里,X=7的话,chs.lenth=8,X--,所以,这个循环是不会退出的,x永远小与8,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
疯子加傻瓜mt
2013-12-01
知道答主
回答量:50
采纳率:0%
帮助的人:16.6万
展开全部
最后的for循环写错了
,chs.length=8;是系循环,所以下标会越界

for(int x=7;x>=0;x--)
{
System.out.print(chs[x]+"");

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式