📄 frct2flt.c
字号:
/*********************************************************************
* *
* Software License Agreement *
* *
* The software supplied herewith by Microchip Technology *
* Incorporated (the "Company") for its dsPIC controller *
* is intended and supplied to you, the Company's customer, *
* for use solely and exclusively on Microchip dsPIC *
* products. The software is owned by the Company and/or its *
* supplier, and is protected under applicable copyright laws. All *
* rights are reserved. Any use in violation of the foregoing *
* restrictions may subject the user to criminal sanctions under *
* applicable laws, as well as to civil liability for the breach of *
* the terms and conditions of this license. *
* *
* THIS SOFTWARE IS PROVIDED IN AN "AS IS" CONDITION. NO *
* WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, *
* BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND *
* FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE *
* COMPANY SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, *
* INCIDENTAL OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. *
* *
* (c) Copyright 2003 Microchip Technology, All rights reserved. *
*********************************************************************/
/* Local headers. */
#include "testing.h" /* testing interface */
/*...........................................................................*/
float Fract2Float ( /* Converts fractional into float */
fractional aVal /* fract value in range {-1, 1-2^-15} */
) {
#if DATA_TYPE==FRACTIONAL /* [ */
/* Local declarations. */
double scale = pow (2.0, -15.0); /* 2^(-15) */
long int fullRange = 1L<<16; /* 2^(16) */
long int halfRange = 1L<<15; /* 2^(15) */
double decimalVal = 0.0;
/* Convert. */
if (aVal >= halfRange) {
aVal -= fullRange;
}
decimalVal = ((double) aVal)*scale;
/* Return decimal value in floating point. */
return ((float) decimalVal);
#else /* ] [ */
/* Return input value in floating point. */
return ((float) aVal);
#endif /* ] */
} /* end of Fract2Float */
/*...........................................................................*/
/***************************************************************************/
/* EOF */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -