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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© q757571446 中级黑马   /  2015-4-6 18:21  /  959 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

将一个数转换为十六进制。定义以下函
  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存在.



5 个回复

倒序浏览
定义一个8个元素数组arr中,初始化的值不因该是0吗?a是什么鬼
回复 使用道具 举报
什么意思
回复 使用道具 举报
看了半天,没看明白。不光a没看懂,后面3  C你怎么来的
回复 使用道具 举报
本帖最后由 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
回复 使用道具 举报
zouxx 发表于 2015-4-6 20:11
看了半天,没看明白。不光a没看懂,后面3  C你怎么来的

十进制转十六进制的算法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马