黑马程序员技术交流社区
标题: 查表法之进制转换 你知道多少? [打印本页]
作者: 乔友为 时间: 2015-9-19 21:26
标题: 查表法之进制转换 你知道多少?
2,8,16进制每位最小表示是0,最大的F,那么可以定义一个有序数组,
包含所有进制标识(从0到F),那么其下标也是0到15,而转换进制,最多是&15,
得出的结要最大也是15,刚好一一对应,因为整数有四个字节,
所以其最大元素个数为-1的二进制32个,那么可以定义一个32长度的char数组,
接收每次查表对应得到的表值,再倒过来打印.就得到进制转换后的值.
public static void tableLookup(int x,int y,int z)
{
char[] arr ={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char[] arr1=new char[32];
int b=0;
do
{
arr1[b++]=arr[x&y];
x =x>>>z;
}
while (x>0 );
for (int c =b-1; c>=0;c-- )
{
System.out.print(arr1[c]+" ");
}
System.out.println();
}
作者: 乔友为 时间: 2015-9-19 21:35
谢谢辣,感谢
作者: 残影 时间: 2015-9-19 21:46
做完do之后,b加1了,结束后,b应该是在这个数组长度之后的吧?c是不是应该b-2呢? 。。。厉害,这样挺简洁的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |