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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 疯狂的大猫 中级黑马   /  2015-4-30 11:30  /  7870 人查看  /  22 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5黑马币
class ArrayTest6
{
public static void main(String[] args)
{
  toHex(60);
}
/*
0 1 2 3 4 5 6 7 8 9  A  B  C  D  E  F  ==十六进制中的元素。
0 1 2 3 4 5 6 7 8 9  10 11 12 13 14 15
查表法:将所有的元素临时存储起来。建立对应关系。
每一次&15后的值作为索引去查建立好的表。就可以找到相应的元素。
这样比 -10+'a'简单的多。
这个表怎么建立呢?
可以通过数据的形式来定义
*/
public static void toHex (int num)
{
  char[] chs = {'0','1','2','3'
      ,'4','5','6','7'
      ,'8','9','A','B'
      ,'C','D','E','F'};
  for (int x=0;x<8 ;x++ )
  {
   int temp = num & 15;
   System.out.println(chs [temp]);
   num = num >>> 15;
  }
}
}

最佳答案

查看完整内容

toHex(60); 意思是调用你自己定义的一个叫 toHex() 的方法函数~ 并且传一个参数60到这个方法内部进行运算~ 就是调用下面这个方法函数~ toHex(int num) 如理解请赏分,谢谢!

22 个回复

倒序浏览
本帖最后由 大西洋 于 2015-4-30 12:25 编辑

toHex(60);  意思是调用你自己定义的一个叫 toHex() 的方法函数~ 并且传一个参数60到这个方法内部进行运算~

就是调用下面这个方法函数~  toHex(int num)
  1. public static void toHex (int num){   
  2.       char[] chs = {'0','1','2','3'
  3.       ,'4','5','6','7'
  4.       ,'8','9','A','B'
  5.       ,'C','D','E','F'};
  6.       for (int x=0;x<8 ;x++ )
  7.       {
  8.          int temp = num & 15;
  9.          System.out.println(chs [temp]);
  10.          num = num >>> 15;
  11.      }
  12. }  
复制代码
如理解请赏分,谢谢!


评分

参与人数 1黑马币 +5 收起 理由
疯狂的大猫 + 5 很给力!

查看全部评分

回复 使用道具 举报
依秋无泪 来自手机 中级黑马 2015-4-30 12:34:33
藤椅
疯狂的大猫 发表于 2015-4-30 11:30
class ArrayTest6
{
public static void main(String[] args)

首先,他是方法名,然后它的目的是把10进制转换为16进制,从见名知意的角度来看,Hex就是16进制,toHex就是转换成16进制
回复 使用道具 举报
toHex()方法,简单说就是,把括号中的数变成十六进制表现形式。
题目中,你传的是60,那么输出的就是3c,不过,你要么打印,要么传值,你只写个toHex(60),没意义。
回复 使用道具 举报
toHex ():首先它定义了一个数组,把16进制的数的表示放进去,由于是数组就可以用下标访问。然后由于int 是32位,故他判断8次(每次4位,8次32位)每4位2进制码 &15(1111)就相当于它本身,把值传给temp(自动转换为10进制),用temp作为下标查找之前的数组就可以找到对应的16进制字符。
num = num >>> 15;右移四位后循环继续。
回复 使用道具 举报
应该是num = num>>>4;  移动四位  num =num>>>15 不对吧。
回复 使用道具 举报
大西洋 发表于 2015-4-30 12:21
toHex(60);  意思是调用你自己定义的一个叫 toHex() 的方法函数~ 并且传一个参数60到这个方法内部进行运算~ ...

toHex()方法,简单说就是,把括号中的数变成十六进制表现形式。
  1. public class ArrayTest6 {

  2.         public static void main(String[] args) {
  3.                
  4.                 toHex(60);
  5.                 //toBin(-6);
  6.         }
  7.         /*
  8.          0 1 2 3 4 5 6 7 8 9  A  B  C  D  E  F   ==十六进制中的元素。
  9.          0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  10.          
  11.          查表法:将所有的元素临时存储起来。建立对应关系。
  12.          每一次&15后的值作为索引去查建立好的表。就可以找到对应的元素。
  13.          这样比 -10+'a'简单的多。
  14.          
  15.          如何建立此表呢?
  16.          可以通过数组的形式来定义。
  17.          
  18.          发现出结果,但是是反着的。需要正过来,可以通过StringBuffer reverse功能来完成。
  19.          所以可以使用已经学过的容器:数组 来完成存储。
  20.          
  21.          */
  22.         public static void toHex(int num){
  23.                 char[] chs={'0','1','2','3',
  24.                                     '4','5','6','7',
  25.                                     '8','9','A','B',
  26.                                     'C','D','E','F',};
  27.                 //定义一个临时容器
  28.                 char[] arr=new char[8];
  29.                 int pos=arr.length;
  30.                
  31.                 while(num!=0){
  32.                         int temp=num & 15;
  33.                         //System.out.println(chs[temp]);
  34.                         arr[--pos]=chs[temp];
  35.                         num=num>>>4;
  36.                                     
  37.                 }
  38.                 //System.out.println("pos="+pos);
  39.                 //存储数组arr数组遍历。
  40.                 for(int x=pos;x<arr.length;x++){
  41.                         System.out.print(arr[x]+",");
  42.                 }
  43.         }
  44.        
  45.        
  46.         public static void toBin(int num){
  47.                 //定义二进制的表。
  48.                 char[] chs={'0','1'};
  49.                
  50.                 //定义一个临时存储容器。
  51.                 char[] arr=new char[32];
  52.                
  53.                 //定义一个操作数组的指针
  54.                 int pos =arr.length;
  55.                
  56.                 while(num!=0){
  57.                         int temp=num & 1;
  58.                         arr[--pos]=chs[temp];
  59.                         num=num>>>1;
  60.                        
  61.                 }
  62.                 for(int x=pos;x<arr.length;x++){
  63.                         System.out.print(arr[x]);
  64.                 }
  65.                
  66.         }
  67. }
复制代码
回复 使用道具 举报
将括号里面的十进制,转换成16进制。
回复 使用道具 举报
toHex(60);就是调用toHex方法把十进制数60转换成16进制数
回复 使用道具 举报
toHex();括号内的十进制转换成十六进制。
回复 使用道具 举报
谢谢你们
回复 使用道具 举报
就是调用toHex()方法将60转换为十六进制
回复 使用道具 举报
嗯呢,谢谢热心的兄弟姐妹们
回复 使用道具 举报
其实这就是自定义的方法名,表示将十进制数据转换成16进制的数,如果自己不写这个方法的方法体,这个方法时没用的
回复 使用道具 举报
将十进制60转换成16进制 3c
回复 使用道具 举报
toHex()方法,简单说就是,把括号中的数变成十六进制表现形式。
回复 使用道具 举报
自己定义的一个方法  功能是通过查表法来完成16进制的转换
回复 使用道具 举报
将其转为16进制
回复 使用道具 举报
转换为16进制!
回复 使用道具 举报
就是转成16进制的意思呗
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马