当前位置: 首页 > 编程语言 > Java > 正文

Java编程那些事儿46—数组使用示例2

时间:2010-03-07 csdn 陈跃峰

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下标的元素即可。