黑马程序员技术交流社区
标题:
看看这个代码哪里出问题了 十进制转十六进制
[打印本页]
作者:
8047107
时间:
2013-5-13 18:43
标题:
看看这个代码哪里出问题了 十进制转十六进制
本帖最后由 8047107 于 2013-5-13 18:53 编辑
class toHex
{
public static void toHex(int num)
{
char [] chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char [] arr=new char [8];
for(int x=0; x<8; x++)
{
int temp=num & 15;
arr[x]=arr[temp];// 发现问题了。这里应该是arr[x]=chs[temp];
num = num >>> 4;
}
for (int x=0;x<arr.length ;x++ )
{
System.out.print(arr[x]+',');//这里应该是双引号
}
}
public static void main (String[] args)
{
toHex(60);
}
}
复制代码
编译通过,运行就出错。说是角标越界[问题已经解决]
1.jpg
(15.9 KB, 下载次数: 0)
下载附件
2013-5-13 18:45 上传
郁闷了 刚解决一个 又来一个【解决】
1.jpg
(7.33 KB, 下载次数: 0)
下载附件
2013-5-13 18:50 上传
太丢人了 不该发这个帖子啊。第二个问题是因为我把双引号打成单引号了。把本来应该打印字符串的结果弄成字符了 结果肯定打印不一样啦~~老是犯这种低级错误
作者:
8047107
时间:
2013-5-13 18:46
擦自己发现了。。arr[x]=chs[temp]猜对!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2