黑马程序员技术交流社区

标题: Java数组的问题 [打印本页]

作者: q757571446    时间: 2015-4-6 18:21
标题: Java数组的问题
将一个数转换为十六进制。定义以下函
  1.         public static void toHex2(int num)
  2.         {
  3.                 char[] chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
  4.                 char[] arr=new char[8];
  5.                 int pos=0;
  6.                 while (num!=0 )
  7.                 {
  8.                         int temp=num & 15;
  9.                         arr[pos++]=chs[temp];
  10.                         num=num >>> 4;
  11.                        
  12.                 }
  13.                 System.out.println("pos="+pos);
  14.                 for (int x=arr.length-1;x>=0 ;x-- )
  15.                 {
  16.                         System.out.print(arr[x]+",");
  17.                 }
  18.         }
复制代码
返回的结果为何会有a存在.




作者: q757571446    时间: 2015-4-6 18:22
定义一个8个元素数组arr中,初始化的值不因该是0吗?a是什么鬼
作者: 李伟松    时间: 2015-4-6 19:48
什么意思
作者: zouxx    时间: 2015-4-6 20:11
看了半天,没看明白。不光a没看懂,后面3  C你怎么来的
作者: 1021361407    时间: 2015-4-6 20:32
本帖最后由 1021361407 于 2015-4-6 20:51 编辑
q757571446 发表于 2015-4-6 18:22
定义一个8个元素数组arr中,初始化的值不因该是0吗?a是什么鬼

我验证了一下,没有输出a,可能是环境的问题把
百度了一下,这是默认值,char的默认值打印出来是什么都不显示的
byte:0(8位)
short:0(16位)
int:0(32位)
long:0L(64位)
char:\u0000(16位)
float:0.0F(32位)
double:0.0(64位)
boolean: flase

作者: 1021361407    时间: 2015-4-6 20:52
zouxx 发表于 2015-4-6 20:11
看了半天,没看明白。不光a没看懂,后面3  C你怎么来的

十进制转十六进制的算法




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