本帖最后由 朱志江 于 2013-5-6 20:19 编辑
/*
需求:输入人的名字然后输出时人的名字行对应的十六进制数
思想:1、把人的名字用char类型的转换成int类型的
2、然后用查表法把int类型的转换成十六进制
3、用数组的方式记录这些十六进制数然后打印出来
步骤:1、新建一个类中定义一个静态的方法,然后把要用到的字符用char类型数组的方式记录
2、定义指针,指针指向是最大的角标
3、用while循环来吧int的数转换成十六进制
4、用for循环进行记录和输出
*/
class Mingming
{
public static void main(String[] args)
{
Mingming1 mm = new Mingming1();//new一个对象
mm.ming(""+'\u6731'+'\u5FD7'+'\u6C5F'+"\n");//调用类中的函数
mm.haha('朱');
mm.haha('志');
mm.haha('江');
}
}
class Mingming1
{
public static void haha(char c)
{
char ch = c;
int num = ch;
char [] cc = {'0','1','2','3',//把查表法用到的字符全都用数组的方式表现出来
'4','5','6','7',
'8','9','A','B',
'C','D','E','F'};
char [] arr = new char[32];
int pos = arr.length-1;//把指针指向最大的角标
while (num !=0)
{
int temp = num & 15;//转换十六进制
arr[pos]=cc[temp];
num =num >>> 4;
pos--;
}
for (int x =pos+1;x<arr.length ;x++ )//用for记录转换的数
{
System.out.print(arr[x]);
}
System.out.println();
}
public static void ming(Object x)
{
System.out.print(x);
}
}
|
|