黑马程序员技术交流社区

标题: 关于进制转换打印的问题 [打印本页]

作者: chenwei0407    时间: 2015-5-4 01:53
标题: 关于进制转换打印的问题
为什么这个程序执行以后前面就打印空格?0到哪里去了呢?
结果是 , , , ,0,0,3,C,

  1. class ArrayTest
  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.                
  11.                 char[] arr = new char[8];
  12.                 for (int x=0;x<8 ;x++ )
  13.                 {
  14.                         int temp = num & 15;
  15.                         arr[x] = chs[temp];
  16.                         num = num >>> 4;
  17.                         System.out.print(arr[7-x]+",");
  18.                 }

  19.                
  20.         }


  21. }
复制代码

作者: 飒飒    时间: 2015-5-4 02:49
本帖最后由 飒飒 于 2015-5-4 02:52 编辑

因为 char[] arr = new char[8]定义时其中的元素都是null,循环执行的时候,当x=0时,arr[7-0]中还是null,所以打印出来空格;以此类推,到arr[3]的时候才开始有值,便打印出0.
作者: chenwei0407    时间: 2015-5-4 11:11
飒飒 发表于 2015-5-4 02:49
因为 char[] arr = new char[8]定义时其中的元素都是null,循环执行的时候,当x=0时,arr[7-0]中还是null, ...

受教了,谢谢!




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