• 大小: 2.01MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-20
  • 语言: C/C++
  • 标签:

资源简介

Float转IEEE754格式、IEEE754格式转Float的算法源代码,C编写,在VC6.0下可直接运行,注释详细,便于移植和学习理解

资源截图

代码片段和文件信息


/*作者:左健     单位:cqccri   时间:2014.12.20*/

#include
#include
using namespace std;
int a[66]b[66]*pa=a*pb=b;             

//========================================================================================
//Description : 将十进制数据整数部分转换为二进制格式
//Argument(s) : none
//Return(s)   : none
//Caller(s)   :     
//Note(s)     : none
//========================================================================================
void Decimal_Integer_To_Binary(__int64 x)
{
int i;
__int64 m;
for(i=0;i<66;i++)
{
*(pa+i)=0;
*(pb+i)=0;
}
for(i=0;;i++)
{
*(pa+i)=x%2;
m=x/2;
x=m;
if(m==0)
{
*(pa+65)=i;  //此时的i比实际的位数个数少1
break;
}
}
for(int j(0);j<=i;j++)
*(pb+j)=*(pa+i-j);
}

//========================================================================================
//Description : 将十进制数据小数部分转换为二进制格式
//Argument(s) : none
//Return(s)   : none
//Caller(s)   :     
//Note(s)     : none
//========================================================================================
void Decimal_Decimal_To_Binary(float x)
{
int i;
for(i=0;i<66;i++)
{
*(pa+i)=0;
*(pb+i)=0;
}
double m=x*2;
for( i=0;i<=22;i++)
{
if(m<1)
{
*(pb+i)=0;
m*=2;
continue;
}
if(m>=1)
{
*(pb+i)=1;
m-=1;
if(0.0000001>=m) break; 
m*=2;

}
}
}
//***********输出函数*************//
void shuchu(int ieee754_result[]int E)
{
int a16[8];
int a[5]={08421};
long sum_back=0;
 cout<<“IEEE754格式表示为:“;
    int n(1);
 for(int i=1;i<=32;i++n++)
 {  
 cout<         if(n%4==0)
 cout<<“  “;
 }
 cout<  
 for( i=0;i<=7;i++)
 {
 int sum(0);
 for(int j(1);j<=4;j++)
 sum+=ieee754_result[i*4+j]*a[j];
 a16[i]=sum;
 }
 cout<<“十六进制表示为:   “;
 for( i=0;i<=7;i++)
 {
 printf(“%x“a16[i]);
 }

//   for( i=0;i<=3;i++)
//   {
//   int sum(0);
//   for(int j(1);j<=8;j++)
//   sum+=ieee754_result[i*8+j]*pow(28-j);
//   a4[i]=sum;
//   }
//   for( i=0;i<=3;i++)
//   {
//   printf(“\n%x“a4[i]);
//   }

///////////////////////////////////////////////////////////////////////////////////
//   for(int i32=1;i32<=32;i32++)  //转换为32位长整形
//  sum_back=sum_back+ieee754_result[i32]*pow(232-i32);
//    printf(“\n%x\n“sum_back);
//    printf(“%d\n“sum_back);
cout<}

//********主函数*********//
void main()
{
float xabsolute_value;
int kieee754_result[33]decode_data[8]Integer_Part[66]Decimal_Part[23]
Exp_Partcounter=0flag=0;
__int64 PartOfInterger=0;
while(1)
{
cout<<“请输入一个数:“< cin>>x;
cout< if(x==0)
{
cout<<“00 00 00 00“< }
else
{
if(x>0)  absolute_value=x;
if(x<0)  absolute_value=-x;
PartOfInterger=absolute_value;
if(PartOfInterger>=1)
{
Decimal_Integer_To_Binary(PartOfInterger);   
flag=a[65];
for(int i(0);i<=flag;i++)
I

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-10-07 15:12  Float_To_IEEE754\
     目录           0  2015-10-07 15:12  Float_To_IEEE754\Debug\
     文件      279552  2015-08-09 11:52  Float_To_IEEE754\Debug\ieee754.bsc
     文件      548928  2015-08-09 11:52  Float_To_IEEE754\Debug\ieee754.exe
     文件      790340  2015-08-09 11:52  Float_To_IEEE754\Debug\ieee754.ilk
     文件      254587  2015-08-09 11:52  Float_To_IEEE754\Debug\ieee754.obj
     文件     2076524  2015-08-09 11:52  Float_To_IEEE754\Debug\ieee754.pch
     文件     1106944  2015-08-09 11:52  Float_To_IEEE754\Debug\ieee754.pdb
     文件           0  2015-08-09 11:52  Float_To_IEEE754\Debug\ieee754.sbr
     文件      262207  2015-01-29 13:35  Float_To_IEEE754\Debug\ieee7541.obj
     文件           0  2015-01-29 13:35  Float_To_IEEE754\Debug\ieee7541.sbr
     文件       74752  2015-08-09 11:52  Float_To_IEEE754\Debug\vc60.idb
     文件      110592  2015-08-09 11:52  Float_To_IEEE754\Debug\vc60.pdb
     文件        6176  2015-10-07 15:11  Float_To_IEEE754\ieee754.cpp
     文件        4294  2015-01-29 15:13  Float_To_IEEE754\ieee754.dsp
     文件         520  2015-01-29 11:26  Float_To_IEEE754\ieee754.dsw
     文件       50176  2015-10-07 15:11  Float_To_IEEE754\ieee754.ncb
     文件       54784  2015-10-07 15:11  Float_To_IEEE754\ieee754.opt
     文件        1428  2015-08-09 11:52  Float_To_IEEE754\ieee754.plg
     文件        6336  2015-01-29 13:35  Float_To_IEEE754\ieee7541.cpp
     目录           0  2015-10-07 15:12  IEEE754_To_Float\
     目录           0  2015-10-07 15:12  IEEE754_To_Float\Debug\
     文件      246784  2015-10-07 14:58  IEEE754_To_Float\Debug\IEEE754_To_Float.bsc
     文件      270409  2015-10-07 14:58  IEEE754_To_Float\Debug\IEEE754_To_Float.exe
     文件      379308  2015-10-07 14:58  IEEE754_To_Float\Debug\IEEE754_To_Float.ilk
     文件     2076524  2015-08-09 11:52  IEEE754_To_Float\Debug\IEEE754_To_Float.pch
     文件      590848  2015-10-07 14:58  IEEE754_To_Float\Debug\IEEE754_To_Float.pdb
     文件       15920  2015-10-07 14:58  IEEE754_To_Float\Debug\ieee754_to_float.obj
     文件           0  2015-10-07 14:58  IEEE754_To_Float\Debug\ieee754_to_float.sbr
     文件       74752  2015-10-07 14:58  IEEE754_To_Float\Debug\vc60.idb
     文件      102400  2015-10-07 14:58  IEEE754_To_Float\Debug\vc60.pdb
............此处省略6个文件信息

评论

共有 条评论

相关资源