C语言代码实现如下:
********************************************************************** 函乎信闷数名称: BspDouToFix
* 功能描述: 将指定的浮点数 转化为 定点数
* 算法描述: 无
* 输入参数: ucType 0表示无符号 1表示有符号
* ucInteger 表示整数占几个岁弯bit
* ucdecimal 表示小数占几个bit
* dbDou 为待转化的浮点数
* 输出参数: 无
* 返 回 值: 转化后的定点数
*********************************************************************
VOID BspDouToFix(UCHAR ucType, UCHAR ucInteger, UCHAR ucdecimal, DOUBLE dbDou, UINT64 *pllfix)
{
UINT64 lltemp = 0
DOUBLE dbtemp = 0
dbtemp = dbDou
if(dbtemp < 0) /* 有符号正数 或者 无符号数 */
{
坦兄 lltemp = (UINT64)(-dbDou*(1<<ucdecimal))
*pllfix = (UINT64)((UINT64)(1)<<(ucType + ucInteger + ucdecimal)) - lltemp
}
else if(dbtemp > 0) /* 有符号负数 */
{
*pllfix = (UINT64)(dbDou * (1<<ucdecimal))
}
else
{
*pllfix = 0
}
}
这好铅个看你具体要做什友者好么,浮点转整常用以下几个命令。round(a):四舍五入,比如嫌乱:round(pi)=3
ceil(a):向上取整,比如:ceil(pi)=4
floor(a):向下取整,比如:floor(pi)=3
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)