资源简介
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个文件信息
评论
共有 条评论