2.1.6.9 convert_floating_by_format
Description
Convert floating point by format.
Syntax
bool convert_floating_by_format( LPVOID lpOutputBuff, LPVOID lpInputBuff, size_t nNumValues, FLOATING_POINT_TYPE nOutputFormatType, FLOATING_POINT_TYPE nInputFormatType )
Parameters
- lpOutputBuff
- [output] A pointer to the buffer that receives the convert value
- lpInputBuff
- [input] A pointer to the buffer containing the data to convert
- nNumValues
- [input] number of floating points
- nOutputFormatType
- [input] output format type. See FLOATING_POINT_TYPE
- nInputFormatType
- [input] input format type. See FLOATING_POINT_TYPE
typedef enum
{
FLOATING_POINT_TYPE_IEEE_FLOAT = 0, // 32-bit
FLOATING_POINT_TYPE_IEEE_DOUBLE, // 64-bit
FLOATING_POINT_TYPE_VAX_F, // 32-bit, ~[-2.9E-39, 1.7E+38]
FLOATING_POINT_TYPE_VAX_D, // 64-bit, ~[-2.9E-39, 1.7E+38]
FLOATING_POINT_TYPE_VAX_G, // 64-bit, ~[-5.6E-309, 0.9E+308]
// FLOATING_POINT_TYPE_VAX_H, // 128-bit, NOT supported
FLOATING_POINT_TYPE_IBM_SHORT, // 32-bit
FLOATING_POINT_TYPE_IBM_LONG, // 64-bit
FLOATING_POINT_TYPE_IBM_LONG_XPORT, // 64-bit
} FLOATING_POINT_TYPE;
Return
true on success and false on failure.
Examples
EX1
void convert_floating_by_format_vax()
{
unsigned int a[] = {0x268bc2d9, 0x015dc2d9};
double f1[2];
bool bRet = convert_floating_by_format(f1, a, 2, FLOATING_POINT_TYPE_IEEE_DOUBLE, FLOATING_POINT_TYPE_VAX_F);
printf("f1[0]=%f\n", f1[0]);
printf("f1[1]=%f\n", f1[1]);
return;
}
Remark
See Also
Header to Include
origin.h
Reference
|