进制转换,有点细节问题
这是十进制转化为其他进制的程序,自己编写的,还不是很成熟。#include<iostream.h>
#define N 2 //定义何种进制
main()
{ int a[20],b[20],k,i,j;
cin>>k;
for(i=0;i<=19;i++) //将十进制通过除法求得余数保留在数组中
{a[i]=k%N;
k=k/N;
}
i=19;
for(j=0;j<=19;j++)//调换顺序
{b[j]=a[i];
i--;
}
for(j=0;j<=19;j++)//输出
cout<<b[j];
cout<<endl;
return 0;
}
有个问题,我最初定义数组是a[20],但实际上,
比如我输入十进制100,输出如下:
100
00000000000001100100
Press any key to continue
这也是个正确答案,但这样非常费用空间。我是只想输出1100100。
我的问题是,如何确定准确的数组空间大小,而不是盲目的定义a[20],b[20]
有好的方法吗?