求教如何把浮点数转化为定点数

求教如何把浮点数转化为定点数,第1张

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12554293.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存