A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Imp_x 高级黑马   /  2014-8-20 10:01  /  2779 人查看  /  36 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天翻看视频,重新敲下代码,出来的结果纠结了差不多半小时才发现问题了= =赶脚好坑爹,看来光看视频之余代码还是得多敲啊{:3_63:}



  1. class JinZhi
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 toHex(60);
  6.         }

  7.         public static void toHex(int num)
  8.         {
  9.                 char[] chs = {'0','1','2','3',
  10.                                                 '4','5','6','7',
  11.                                                 '8','9','A','B',
  12.                                                 'C','D','E','F'};

  13.                 char[] arr = new char[8];
  14.                
  15.                 int pos=arr.length;

  16.                 while(num!=0)
  17.                 {
  18.                         arr[--pos] = chs[num&15];

  19.                         num=num>>>4;
  20.                 }
  21.                 for (int x=pos;x<arr.length ;x++)
  22.                 {
  23.                         System.out.print(arr[x]+',');
  24.                 }
  25.         }
  26. }
复制代码




36 个回复

倒序浏览
没看明白,怎么回事呀?
回复 使用道具 举报
...                    
回复 使用道具 举报
黄霄仪 发表于 2014-8-20 17:39
没看明白,怎么回事呀?

代码第27行那里 System.out.print(arr[x]+',');    这里的‘,’应该改成“,”
单引号的话就用了ASCII码表了= =自动类型提升,应该改为双引号才OK{:3_66:}
回复 使用道具 举报
本帖最后由 kakasa 于 2014-8-20 20:47 编辑

逗号没了就好了?
回复 使用道具 举报
kakasa 发表于 2014-8-20 20:46
逗号没了就好了?

逗号可以删除不要= =需要的话要加双引号而不是单引号
因为加单引号的话就变成了int类型加上字符类型,然后字符类型会自动强转成int类型再进行运算,逗号“,”的ASCII码你有兴趣的话可以去查一下表
就是这样→_→
回复 使用道具 举报
kakasa 中级黑马 2014-8-20 21:07:53
7#
Imp_x 发表于 2014-8-20 21:04
逗号可以删除不要= =需要的话要加双引号而不是单引号
因为加单引号的话就变成了int类型加上字符类型,然 ...

哦哦 arr[x]+','   这两个那阿斯科码相加了啊 哈哈
回复 使用道具 举报
自从用了开发工具。。。命令行都不会用了~
回复 使用道具 举报
Imp_x 高级黑马 2014-8-20 21:16:21
9#
回头浪子心 发表于 2014-8-20 21:10
自从用了开发工具。。。命令行都不会用了~

大婶~ ~待我也用上开发工具吧!
回复 使用道具 举报
Imp_x 发表于 2014-8-20 19:47
代码第27行那里 System.out.print(arr[x]+',');    这里的‘,’应该改成“,”
单引号的话就用了ASCII码 ...

谢谢,搞明白了
回复 使用道具 举报
楼主最后一句打印','改成","就好了
回复 使用道具 举报
Imp_x 发表于 2014-8-20 19:47
代码第27行那里 System.out.print(arr[x]+',');    这里的‘,’应该改成“,”
单引号的话就用了ASCII码 ...

还是没明白。。能给解释一下么
回复 使用道具 举报
Imp_x 发表于 2014-8-20 21:04
逗号可以删除不要= =需要的话要加双引号而不是单引号
因为加单引号的话就变成了int类型加上字符类型,然 ...

双引号的话加号才被看成是字符串链接,单引号的话就变成普通加法,是这个意思么
回复 使用道具 举报
Imp_x 高级黑马 2014-8-20 23:49:33
14#
付剑翊 发表于 2014-8-20 23:37
双引号的话加号才被看成是字符串链接,单引号的话就变成普通加法,是这个意思么 ...

简单的说,就是这个意思
回复 使用道具 举报
  1. class JinZhi
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 toHex(60);
  6.         }
  7.         public static void toHex(int num)
  8.         {
  9.                 char[] chs = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
  10.                 char[] arr = new char[8];              
  11.                 int js=0;
  12.                 while(num!=0)
  13.                 {
  14.                         arr[js] = chs[num&15];
  15.                         num=num>>>4;
  16.                         js++;
  17.                 }
  18.                 for (int x=js;x>=0 ;x--)
  19.                 {
  20.                         System.out.print((char)arr[x]);
  21.                 }
  22.         }
  23. }
复制代码
回复 使用道具 举报
Imp_x 高级黑马 2014-8-21 00:04:11
16#

首先= =你没找到我发的问题所在
二、你的代码跟我的有区别么 只是把我的pos指针换成了js- -
三、你第16行的js++可以跟第14行的arr[js]合在一起写成arr[js++]
四、你最后第20行打印语句那里- -arr本来你就定义的char类型,你不需要再强转了- -
回复 使用道具 举报
Imp_x 发表于 2014-8-21 00:04
首先= =你没找到我发的问题所在
二、你的代码跟我的有区别么 只是把我的pos指针换成了js- -
三、你第16行 ...

对你这种人呵呵不解释
回复 使用道具 举报
恩 所以 细节很重要,睡觉去了
回复 使用道具 举报
Imp_x 高级黑马 2014-8-21 10:20:27
19#
happymouse 发表于 2014-8-21 00:46
对你这种人呵呵不解释

你是哪种人?这么牛逼?
回复 使用道具 举报
{:3_49:}看不懂
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马