admin 管理员组

文章数量: 1087652


2024年12月23日发(作者:西安小程序开发公司)

#include

#include

double transform()

{

int i,j,pow=1;

int dot=-1; //记录小数点位置

double DEC=0,fpow;

char HEX[100];

cout<<"请输入一个十六进制数"<

loop:

cin>>HEX;

j=strlen(HEX);

for(i=j;i>0;)

{

i--;

if ((HEX[i]>='0') && (HEX[i]<='9')) HEX[i]=HEX[i]-'0';

else if((HEX[i]>='A') && (HEX[i]<='F')) HEX[i]=HEX[i]-'A'+10;

else if((HEX[i]>='a') && (HEX[i]<='f')) HEX[i]=HEX[i]-'a'+10;

else if(HEX[i]=='.') dot=i; //找到小数点

else

{

cout<<"你的输入不合法,请重新输入"<

goto loop;

}

}

if(dot!=-1) //当dot的值不等于-1 表示有小数点此时dot的值是小数点的位

{

for(i=dot;i>0;) //小数点前部分 用你的方法

{

i--;

DEC=DEC+HEX[i]*pow;

pow=pow*16;

}

fpow=1.0/16;

for(i=dot;i

{

i++;

DEC+=HEX[i]*fpow;

fpow/=16;

}

cout<<"该十六进制数转化为十进制数为"<

return 0;

}

else

{

for(i=j;i>0;)

{

i--;

DEC=DEC+HEX[i]*pow;

pow=pow*16;

}

cout<<"该十六进制数转化为十进制数为"<

return 0;

}

}

int main()

{

while(1)

{

transform();

}

return 0;

}


本文标签: 小数点 西安 输入 合法 记录