⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 float.c

📁 单片机浮点运算子程序,使用C51编程
💻 C
字号:
#include <REG52.h>
#include <FLOAT.h>

#define Uchar unsigned char
#define Uint unsigned int

Uchar x[4];

void FtoC(void);
void CtoF(void);
Uchar get_Ex(void);
void get_int(Uchar Ex);
void get_xiao(Uchar Ex);
/*************************************************************/
void FtoC(void)
{
   float a;
   Uchar i,*px;
   void *pf;

   px = x;                           
   pf = &a;                           
   a = 34.526 * 9.1;
   for(i=0; i<4; i++)
    *(px + i) = *((char *)pf + i); 
}
/****************************************************************/
void CtoF(void)
{
   float a;
   Uchar i,*px;
   Uchar x[4] = {56,180,150,73};
   void *pf;

   px = x;
   pf = &a;
   for(i=0; i<4; i++)
    *((char *)pf + i) = *(px + i);
}
/*****************************************************************/
Uchar get_Ex(void)
{
   Uint Ex;

    Ex = (x[0] << 1) + (x[1] >> 7) - 127;
	return(Ex);
}
/*****************************************************************/
void get_int(Uchar Ex)
{
   Uint I;

     if(Ex < 8)
	   I = (x[1] | 0x80) >> (7 - Ex);
	 else if((Ex > 7) && (Ex < 16))
	 {
       I = x[1];
	   I = (I << 8) + x[2];
       I = (I | 0x8000) >> (15 - Ex);
	 }
}
/******************************************************************/
void get_xiao(Uchar Ex)
{
   long y[8] = {50000000L,25000000L,12500000L,6250000L,3125000L,1562500L,781250L,390625L};
   long  P;
   Uchar Pf,Ps,Pt,n;

     if(Ex < 8)
       n = (x[1] << (Ex + 1)) + (x[2] >> (7 - Ex));
     else if(Ex > 7 && Ex < 16)
	   n = (x[2] << (Ex - 7)) + (x[3] >> (15 - Ex));
     P = (n >> 7) * y[0] + ((n >> 6) & 0x01) * y[1] + ((n >> 5) & 0x01) * y[2] + ((n >> 4) & 0x01) * y[3] + ((n >> 3) & 0x01) * y[4] +((n >> 2) & 0x01) * y[5] +((n >> 1) & 0x01) * y[6] + ((n >> 0) & 0x01) * y[7];
	 Pf = P / 10000000L;
	 Ps = (P % 10000000L) / 1000000L;
	 Pt = ((P % 10000000L) % 1000000L) / 100000L;
}
/********************************************************************************************************************************************************************************************************************/
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -