黑马程序员技术交流社区

标题: 重做了遍查表法,结果差点吓死我= = [打印本页]

作者: Imp_x    时间: 2014-8-20 10:01
标题: 重做了遍查表法,结果差点吓死我= =
今天翻看视频,重新敲下代码,出来的结果纠结了差不多半小时才发现问题了= =赶脚好坑爹,看来光看视频之余代码还是得多敲啊{: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. }
复制代码





作者: 黄霄仪    时间: 2014-8-20 17:39
没看明白,怎么回事呀?
作者: _童金辉    时间: 2014-8-20 17:51
...                    
作者: Imp_x    时间: 2014-8-20 19:47
黄霄仪 发表于 2014-8-20 17:39
没看明白,怎么回事呀?

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

逗号没了就好了?
作者: Imp_x    时间: 2014-8-20 21:04
kakasa 发表于 2014-8-20 20:46
逗号没了就好了?

逗号可以删除不要= =需要的话要加双引号而不是单引号
因为加单引号的话就变成了int类型加上字符类型,然后字符类型会自动强转成int类型再进行运算,逗号“,”的ASCII码你有兴趣的话可以去查一下表
就是这样→_→
作者: kakasa    时间: 2014-8-20 21:07
Imp_x 发表于 2014-8-20 21:04
逗号可以删除不要= =需要的话要加双引号而不是单引号
因为加单引号的话就变成了int类型加上字符类型,然 ...

哦哦 arr[x]+','   这两个那阿斯科码相加了啊 哈哈
作者: 回头浪子心    时间: 2014-8-20 21:10
自从用了开发工具。。。命令行都不会用了~
作者: Imp_x    时间: 2014-8-20 21:16
回头浪子心 发表于 2014-8-20 21:10
自从用了开发工具。。。命令行都不会用了~

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

谢谢,搞明白了

作者: 付剑翊    时间: 2014-8-20 23:31
楼主最后一句打印','改成","就好了
作者: 付剑翊    时间: 2014-8-20 23:36
Imp_x 发表于 2014-8-20 19:47
代码第27行那里 System.out.print(arr[x]+',');    这里的‘,’应该改成“,”
单引号的话就用了ASCII码 ...

还是没明白。。能给解释一下么
作者: 付剑翊    时间: 2014-8-20 23:37
Imp_x 发表于 2014-8-20 21:04
逗号可以删除不要= =需要的话要加双引号而不是单引号
因为加单引号的话就变成了int类型加上字符类型,然 ...

双引号的话加号才被看成是字符串链接,单引号的话就变成普通加法,是这个意思么
作者: Imp_x    时间: 2014-8-20 23:49
付剑翊 发表于 2014-8-20 23:37
双引号的话加号才被看成是字符串链接,单引号的话就变成普通加法,是这个意思么 ...

简单的说,就是这个意思
作者: happymouse    时间: 2014-8-20 23:50
  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
happymouse 发表于 2014-8-20 23:50

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

对你这种人呵呵不解释
作者: dreamseekerkun    时间: 2014-8-21 01:24
恩 所以 细节很重要,睡觉去了
作者: Imp_x    时间: 2014-8-21 10:20
happymouse 发表于 2014-8-21 00:46
对你这种人呵呵不解释

你是哪种人?这么牛逼?
作者: paul.li    时间: 2014-8-21 10:57
{:3_49:}看不懂
作者: 回头浪子心    时间: 2014-8-21 20:42
Imp_x 发表于 2014-8-20 21:16
大婶~ ~待我也用上开发工具吧!

难道你还没用eclipse?或者是Myeclipse?
作者: Imp_x    时间: 2014-8-21 20:44
回头浪子心 发表于 2014-8-21 20:42
难道你还没用eclipse?或者是Myeclipse?

没有= =现在还在用EditPlus   熟悉一点再换攻击工具好了{:3_52:}
作者: 回头浪子心    时间: 2014-8-21 20:45
Imp_x 发表于 2014-8-21 20:44
没有= =现在还在用EditPlus   熟悉一点再换攻击工具好了

额,, 你是自学还是报了培训班啊?


作者: Imp_x    时间: 2014-8-21 20:49
回头浪子心 发表于 2014-8-21 20:45
额,, 你是自学还是报了培训班啊?

自学= =好羡慕你  好多黑马币{:3_64:}
作者: 回头浪子心    时间: 2014-8-21 20:52
Imp_x 发表于 2014-8-21 20:49
自学= =好羡慕你  好多黑马币

币多有什么用咯,我现在兑换不了技术分。。。。没技术分=申请不了入学资格~~~
作者: Imp_x    时间: 2014-8-21 20:55
回头浪子心 发表于 2014-8-21 20:52
币多有什么用咯,我现在兑换不了技术分。。。。没技术分=申请不了入学资格~~~ ...

100黑马币可以换黑马券啊- -我现在都不知道去哪赚  都换技术分了  唉
作者: 回头浪子心    时间: 2014-8-21 20:57
Imp_x 发表于 2014-8-21 20:55
100黑马币可以换黑马券啊- -我现在都不知道去哪赚  都换技术分了  唉

我现在想兑换技术分,,,我输入密码它提示错误,,蛋蛋碎了一地
作者: Imp_x    时间: 2014-8-21 21:13
回头浪子心 发表于 2014-8-21 20:57
我现在想兑换技术分,,,我输入密码它提示错误,,蛋蛋碎了一地

就是你登陆密码啊= =如果不行就找回密码咯  实在不行找万能的客服MM
作者: 回头浪子心    时间: 2014-8-21 21:20
Imp_x 发表于 2014-8-21 21:13
就是你登陆密码啊= =如果不行就找回密码咯  实在不行找万能的客服MM

我第一次登录是用QQ登录的,,按道理说,密码就是QQ密码才对啊,,但还是提示错误的~~~
   MG美眉说她不懂,要了我QQ号,说明天帮我问问,,,OMG~~
作者: Imp_x    时间: 2014-8-21 21:23
回头浪子心 发表于 2014-8-21 21:20
我第一次登录是用QQ登录的,,按道理说,密码就是QQ密码才对啊,,但还是提示错误的~~~
   MG美眉说她不 ...

goodluck!
作者: 回头浪子心    时间: 2014-8-21 21:24
Imp_x 发表于 2014-8-21 21:23
goodluck!

~。~
作者: Imp_x    时间: 2014-8-21 21:28
回头浪子心 发表于 2014-8-21 21:24
~。~

http://bbs.itheima.com/thread-138200-1-1.html
刚才看帖看到的= =你溜进去看看
作者: 付剑翊    时间: 2014-8-22 00:21
Imp_x 发表于 2014-8-20 23:49
简单的说,就是这个意思

看完这个问题,又回头看了一下老师讲的课件,里面有这么个例子,System.out.println('a');和System.out.println('a'+1);打印结果的区别,现在终于相信,很多东西不是没讲,是自己并没有理解到那么深刻
作者: Imp_x    时间: 2014-8-22 00:31
付剑翊 发表于 2014-8-22 00:21
看完这个问题,又回头看了一下老师讲的课件,里面有这么个例子,System.out.println('a');和System.out.p ...

是的= =很多东西还是自己发现了  印象才深刻!
作者: Ezreal    时间: 2014-8-22 19:11
下载一个Eclipse  你值得拥有
作者: Imp_x    时间: 2014-8-22 20:08
Ezreal 发表于 2014-8-22 19:11
下载一个Eclipse  你值得拥有

打算基础打扎实点再换高级编程工具
作者: 黄霄仪    时间: 2014-8-30 21:40
Imp_x 发表于 2014-8-20 19:47
代码第27行那里 System.out.print(arr[x]+',');    这里的‘,’应该改成“,”
单引号的话就用了ASCII码 ...

谢谢,看到了





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2