黑马程序员技术交流社区
标题:
数组--查表法(将十进制转成二进制)
[打印本页]
作者:
张海涛
时间:
2012-12-9 15:23
标题:
数组--查表法(将十进制转成二进制)
本帖最后由 张海涛 于 2012-12-9 15:57 编辑
哪位大虾帮我具体分析下这代码啥意思,我想的有点晕乎乎的……
public static void toBin_3(int num)
{
char[] chs = {'0','1'};
char[] arr = new char[32];
int pos = arr.length;
while (num!=0)
{
int temp = num & 1;
arr[--pos] = chs[temp];
num = num >>> 1;
}
for (int x=0;x<arr.length ;x++ )
{
System.out.print(arr[x]);
}
}
复制代码
作者:
但汉涛
时间:
2012-12-9 15:40
public static void toBin_3(int num)
{
char[] chs = {'0','1'}; //二进制只有0,1,放入数组chs
char[] arr = new char[32]; //在堆内存中,创建32位长的数组
int pos = arr.length; //数组长度
while (num!=0) //其实num在内存中就是二进制存储的
{
int temp = num & 1;
arr[--pos] = chs[temp];
num = num >>> 1;
}
for (int x=0;x<arr.length ;x++ ) //遍历输出
{
System.out.print(arr[x]);
}
}
复制代码
其实真的没有什么要说的,num本来就是在二进制存储到内存中的。
要做的是,和一与,就是取出最后一位,查表char[] chs = {'0','1'};,判断取出的是什么,当成字符'0'或‘1’存入数组arr
作者:
张海涛
时间:
2012-12-9 15:49
{:soso_e183:}
就是& 与的时候有点模糊,然后就是arr[--pos] 这里的--pos可以直接运算后作为数组的参数,差点没接受过来!
本人目前还是鸟哥,继续学习,谢谢了!
作者:
刘丰伟
时间:
2012-12-9 17:32
这个是java基础中数组应用中的进制转换,其实分析一下就是我们要做什么在看代码就容易多了。1.将每一位取出转换成二进制(右移,取出个位,判断是否这个数字是否为零,然后继续操作);2.将转换成的二进制存在一个32位的数组里面;3.将存储在数据倒着输出出来(往数组里存的时候是从个位开始的)。
作者:
张海涛
时间:
2012-12-9 17:39
liu584129914 发表于 2012-12-9 17:32
这个是java基础中数组应用中的进制转换,其实分析一下就是我们要做什么在看代码就容易多了。1.将每一位取出 ...
嗯,学习了……
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2