#include <iostream>
using namespace std;
int main()
{
float n;
int p,c,m=0,precision=0,s[100];
cout<<"输入要转换的数字:"<<endl;
cin>>n;
cout<<"输入要转换的进制:"<<endl;
cin>>p;
cout<<"输入精度precision:"<<endl;
cin>>precision;
cout<<"("<<n<<")10="<<"(0.";
while (n!=0&&m<precision)//数制转换,结果存入数组s[m]
{
n=n*p;
c=n; //c取n的整数部分
n=n-c; //左值n取n得小数部分
m++;s[m]=c; //将余数按顺序存入数组s[m]中s[1]...s[m]
}
for(int k=1;k<=m;k++)//输出转换后的序列
{
if(s[k]>=10) //若为十六进制等则输出相对应的字母
cout<<(char)(s[k]+55);
else //否则直接输出数字
cout<<s[k];
}
cout<<")"<<p<<endl;
return 0;
}
C++ 十进制'纯'小数转换为任意进制的小数
最新推荐文章于 2023-05-15 20:37:53 发布