C++将十进制小数转化成任意进制的
答案:3 悬赏:80 手机版
解决时间 2021-11-24 06:49
- 提问者网友:王者佥
- 2021-11-23 17:50
C++将十进制小数转化成任意进制的
最佳答案
- 五星知识达人网友:风格不统一
- 2021-11-23 18:12
void print(double value,int n)
{
int tempi,tempn[50],D[50],F[50],i,j,k;
double tempf;
tempi=(int)value;
tempf=value-tempi;
i=0;
while(tempi/n!=0)
{
tempn[i]=tempi%n;
tempi=tempi/n;
i++;
}
tempn[i]=tempi%n;
for(j=0;i>=0;j++,i--)
D[j]=tempn[i];
if((value-(int)value)!=0)
{
i=0;
while((tempf-(int)tempf)*10!=0)
{
F[i]=(int)(tempf*n);
tempf=tempf*n-(int)(tempf*n);
i++;
}
}
cout<<"转换前数为:"< for(k=0;k cout< if((value-(int)value)!=0)
{
cout<<".";
for(k=0;k cout< }
cout<<"。\n";
}
这个函数已把valude和转换后的数输出了。
s_gaara
{
int tempi,tempn[50],D[50],F[50],i,j,k;
double tempf;
tempi=(int)value;
tempf=value-tempi;
i=0;
while(tempi/n!=0)
{
tempn[i]=tempi%n;
tempi=tempi/n;
i++;
}
tempn[i]=tempi%n;
for(j=0;i>=0;j++,i--)
D[j]=tempn[i];
if((value-(int)value)!=0)
{
i=0;
while((tempf-(int)tempf)*10!=0)
{
F[i]=(int)(tempf*n);
tempf=tempf*n-(int)(tempf*n);
i++;
}
}
cout<<"转换前数为:"<
{
cout<<".";
for(k=0;k cout<
cout<<"。\n";
}
这个函数已把valude和转换后的数输出了。
s_gaara
全部回答
- 1楼网友:刀戟声无边
- 2021-11-23 18:37
哥们,任意进制就麻烦了,字母加上数字也才最多表示36进制的。
一般算法是小数乘以2,然后每次计算的整数部分逆序排列就是你需要的小数部分的进制数了。
希望对你有帮助!
一般算法是小数乘以2,然后每次计算的整数部分逆序排列就是你需要的小数部分的进制数了。
希望对你有帮助!
- 2楼网友:空山清雨
- 2021-11-23 18:26
第一次将小数乘以十六,得到的数的整数部分就是小数的第一位,然后,去掉整数后的小数又乘以十六,又将得到的数的整数作为小数点后的第二位。依次乘下去。知道都乘为整数,到最后一位。这里的0.5乘以十六得到八,则换算救结果就是0.8
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯