永发信息网

C++将十进制小数转化成任意进制的

答案:3  悬赏:80  手机版
解决时间 2021-11-24 06:49
C++将十进制小数转化成任意进制的
最佳答案
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
全部回答
哥们,任意进制就麻烦了,字母加上数字也才最多表示36进制的。
一般算法是小数乘以2,然后每次计算的整数部分逆序排列就是你需要的小数部分的进制数了。

希望对你有帮助!
第一次将小数乘以十六,得到的数的整数部分就是小数的第一位,然后,去掉整数后的小数又乘以十六,又将得到的数的整数作为小数点后的第二位。依次乘下去。知道都乘为整数,到最后一位。这里的0.5乘以十六得到八,则换算救结果就是0.8
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
白沟有集成墙面装饰公司地址
狗肉哪里最有名
网贷300逾期48天安合法利息该还多少
霉菌孢子结果是一个减号是什么意思?
难道我就是那种宁愿等待消息 也不回复信息的
惠普打印机连接电脑后不能打印是怎么回事?
红色车门被刮露白色就一个圆点大小
有没有宝冶钢构的朋友,我想进宝冶做普工,不知
d3083襄阳南京经过哪些
4.2÷0.22=420÷括号
形容严格的词语
杨州至宜春有多少公里
怎么跳级,初一跳初二〈详细〉
良村村地址在什么地方,我要处理点事!
8.8s 16mm 螺丝承受最大扭矩力
推荐资讯
留学生论文的literature review怎么写呢?是
新贵琅琊机械键盘怎么样,是不是入门级的键盘
求鬼老爹(gui fu)带字幕
索尼Z5和GR09哪个更好一些
百世汇的快递,从重庆到上海一般要几天啊?运
只有那些聋了的人才更加珍惜光明 这里为什么
漳浦有什么旅游胜地
qq朋友的赞天天735啥原因
脑鸣能找男朋友嘛?
谁能推荐几个现代空战电影????
给婴儿要办理农村意料保险,要去镇农保合作点
七叶树地址在什么地方,我要处理点事!
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?