/*
利用数组查表法,
计算十进制转十六进制.
代码自己根据自己意思写的,注释可能有不妥当的地方 ,麻烦也给指出吧...
*/
class Demo{
public static void main(String[] args){
char[] ch ={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};// 自定义 16进制 数组表
char[] chs=new char[8]; //二进制四位一组 32位 分为8组 ,新建一个叫chs数组名 分8格的 一个数组
int temp = 110;//二进制是 1101110 ,定义个变量 十进制是110
int num = 0;//定义一个变量 num 为0,
int x = 0;// 定义数组角标 x=0.
while(temp!=0){
num = temp & 15;//十六进制结果14 即为E // 十进制变量temp & 二进制1111(十进制即为15)得到结果 就是十六进制的末位数.
//chs[x++]=ch[num]; 这个方法不太懂 我意思是直接可以输出 ch[num]
temp = temp >> 4;//二进制temp右移4位,转换为十进制即为 十六进制十位数.
System.out.print(ch[num]);
}
//for (int y =0;y< chs.length ;y++ ){
//System.out.print(chs[y]+",");
//}
}
}
因为上面代码运行后 十六进制没有对调
我用 数组反转 给掉一下
结果输出却不是正确的十六进制.
请教一下.
还有帮忙分析一下..
万分感谢....
|