Java编程那些事儿46—数组利用示例2
6.3.6 数制转换
要求:将十进制数字转换为二进制数字。
在前面先容过,十进制数字转换为二进制数字时一般利用除二取余法,该要领很法则,在措施中可以通过轮回实现,在措施中只需要把获得的数字存储起来即可。
实现思路:将除二取余获得的第一个数字存储在数组中第一个元素,第二次获得的余数存储在数组中第二个元素,依次类推,最后反向输出得到的数字即可。
实现代码如下:
int n = 35;
int[] m = new int[32];
//拆分数字
int num = 0;
while(n != 0){
m[num] = n % 2;//存储余数
num++; //拆分数字增加1
n /= 2; //去掉余数
}
//输出拆分后的数字
for(int i = num - 1;i >= 0;i--){
System.out.print(m[i]);
}
System.out.println();
在该代码中,因为int是32位的,所以最多需要长度是32的数组即可。在存储时把拆分出的第一个数字,也就是二进制的低位,存储在数组的第一个元素,num代表拆分出的数字的个数以及数组下标,一直拆分到n的值为零时竣事。轮回竣事后,因为拆分出来的数字个数是num,所以只需要反向输出数组中0到num-1下标的元素即可。