首页 > 试题广场 >

编写一个函数,把任意十进制正整数转换成进制数。要求:在主函数

[问答题]
编写一个函数,把任意十进制正整数转换成进制数。要求:在主函数中进行输出,而且不能按逆序输出。提示:把十进制数不断被2除,余数放在一个一维数组中,直到商数为0。

推荐
int dtob(int n,int a[])
{int i=0;
 while(n! =0)
   {a[i]=n%2;
   n=n/2;
    i++;
    }
 return(i);
}
main()
{int a[80]={0};
 int i,j,n;
 printf(" \ ninput a decimal number: ");
 scanf(" %d",&n);
 i= dtob(n,a);
 printf(" (%d)10= (",n);
 for(j=i;j>=0;j--)
printf(" %d ",a[j]);
    printf(" )2 ");
}
运行结果如下:
input a decimal number: 15
(15)10= (01111)2
发表于 2018-08-13 20:35:54 回复(0)
 public class TenToTwo {
    public static void main(String[] args) {
        System.out.println("十进制转换为二进制结果为:");
        getTwo(17);
    }
    public static void getTwo(int n){
        List<Integer> list = new LinkedList<>();
        while (n!=0){
            list.add(n%2);
            n/=2;
        }
        Collections.reverse(list);
        for (Integer integer : list) {
            System.out.print(integer);
        }
    }
}

发表于 2019-09-01 23:24:44 回复(0)