c语言任意进制转换文件读取,c语言实现任意进制转换.docx

Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

C语言实现任意进制转换

#include<>

#include<>

#include<>

void dtox(double num,int jz)

{

char xnum[100];

int dnum=(int) num;

int i=0,j=0,e = 0;

while(dnum>=jz)

{

xnum[j++]=dnum%jz+48;

dnum=dnum/jz;

}

xnum[j] = dnum+48;

for(i = j;i>=0;i--){

printf("%c",xnum[i]);

}

if(dnum - num != 0){

printf(".");

num = num - (int)num;

do

{

e++;

printf("%c",(int)(num*jz)+48);

num = num*jz-(int)(num*jz);

if(num == 0)break;

}

while(e<20);

}

}

double xtod(char num[],int jz)

{

double dnum = 0;

int i,j,k=0,n=0,b;

for(i=0;;i++)

{

if(num[i]=='\0')break;

else n++;

if(num[i]=='.'){j=i;k=1;}

}

for(i=j-1;i>=0;i--)

{

dnum =dnum + (double)(num[j-i-1]-48)*pow(jz,i);

}

if(k==1)

{

for(i=j+1;i

{

if(num[i]=='A') b=10;

else if(num[i]=='B') b=11;

else if(num[i]=='C') b=12;

else if(num[i]=='D') b=13;

else if(num[i]=='E') b=14;

else if(num[i]=='F') b=15;

else b=num[i]-'0';

dnum=dnum+b*pow(jz,-(i-j));

}

}

return dnum;

}

void main()

{

char num[100];

double dnum;

int jz1,jz2;

printf("intput one data");

scanf("%s",num);

printf("输入数为几进制");

scanf("%d",&jz1);

printf("转换为几进制");

scanf("%d",&jz2);

dtox(xtod(num,jz1),jz2);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值