有代码,小部分还没写好,希望大大门能够帮下忙
#include<stdio.h>#include<math.h>
#include<stdlib.h>
void main()
{
char temp[8];
printf("请输入八位16进制数:\t");
int a[32],T[4],
int i,j,k;
fflush(stdin);
gets(temp);
for(i=0;i<8;i++)
{
switch(temp[i])
{
case '0':
T[0]=0;T[1]=0;T[2]=0;T[3]=0;
for(j=4*i,k=0;(j<4*i+4)&&k<4;j++,k++)
a[j]=T[k];
break;
case '1':
T[0]=0;T[1]=0;T[2]=0;T[3]=1;
for(j=4*i,k=0;(j<4*i+4)&&k<4;j++,k++)
a[j]=T[k];
break;
case '2':
T[0]=0;T[1]=0;T[2]=1;T[3]=0;
for(j=4*i,k=0;(j<4*i+4)&&k<4;j++,k++)
a[j]=T[k];
break;
case '3':
T[0]=0;T[1]=0;T[2]=1;T[3]=1;
for(j=4*i,k=0;(j<4*i+4)&&k<4;j++,k++)
a[j]=T[k];
break;
case '4':
T[0]=0;T[1]=1;T[2]=0;T[3]=0;
for(j=4*i,k=0;(j<4*i+4)&&k<4;j++,k++)
a[j]=T[k];
break;
case '5':
T[0]=0;T[1]=1;T[2]=0;T[3]=1;
for(j=4*i,k=0;(j<4*i+4)&&k<4;j++,k++)
a[j]=T[k];
break;
case '6':
T[0]=0;T[1]=1;T[2]=1;T[3]=0;
for(j=4*i,k=0;(j<4*i+4)&&k<4;j++,k++)
a[j]=T[k];
break;
case '7':
T[0]=0;T[1]=1;T[2]=1;T[3]=1;
for(j=4*i,k=0;(j<4*i+4)&&k<4;j++,k++)
a[j]=T[k];
break;
case '8':
T[0]=1;T[1]=0;T[2]=0;T[3]=0;
for(j=4*i,k=0;(j<4*i+4)&&k<4;j++,k++)
a[j]=T[k];
break;
case '9':
T[0]=1;T[1]=0;T[2]=0;T[3]=1;
for(j=4*i,k=0;(j<4*i+4)&&k<4;j++,k++)
a[j]=T[k];
break;
case 'A':
T[0]=1;T[1]=0;T[2]=1;T[3]=0;
for(j=4*i,k=0;(j<4*i+4)&&k<4;j++,k++)
a[j]=T[k];
break;
case 'B':
T[0]=1;T[1]=0;T[2]=1;T[3]=1;
for(j=4*i,k=0;(j<4*i+4)&&k<4;j++,k++)
a[j]=T[k];
break;
case 'C':
T[0]=1;T[1]=1;T[2]=0;T[3]=0;
for(j=4*i,k=0;(j<4*i+4)&&k<4;j++,k++)
a[j]=T[k];
break;
case 'D':
T[0]=1;T[1]=1;T[2]=0;T[3]=1;
for(j=4*i,k=0;(j<4*i+4)&&k<4;j++,k++)
a[j]=T[k];
break;
case 'E':
T[0]=1;T[1]=1;T[2]=1;T[3]=0;
for(j=4*i,k=0;(j<4*i+4)&&k<4;j++,k++)
a[j]=T[k];
break;
case 'F':
T[0]=1;T[1]=1;T[2]=1;T[3]=1;
for(j=4*i,k=0;(j<4*i+4)&&k<4;j++,k++)
a[j]=T[k];
break;
}
}
printf("在IEE754型中存储的形式为:\n");
for(j=0; j<32; j++)
printf("%d",a[j]);
printf("\n");
int jw[8];
for(i=1;i<=8;i++)
{
jw[i-1]=a[i];
}
int jc;
jc=jw[7]*1+jw[6]*2+jw[5]*4+jw[4]*8+jw[3]*16+jw[2]*32+jw[1]*64+jw[0]*128;
int e;
e=jc-127;
// printf("%d",e);
int hou[24];
hou[0]=1; // 第一位补一
for(i=1,j=9;i<24;j++,i++)
{
hou[i]=a[j];
}
printf("输出后的24位为:\n");
for(i=0;i<24;i++)
;
// printf("%d",hou[i]);
int x=1; //
char f[100];
int zheng=0,xiao=0;
if(e>=0)
{
//这里一部分
}
}
这个程序的目的是输入一个8位16进制的数字,然后经过IEE754型转换,最后以10进制输出
这段程序已经把经过IEEE754型转换后的2进制算出来了,32位数字也表示好了,只需要把这32位的2进制转换成10进制
PS,这个10进制是带小数的。。。谢谢。。。