加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C是否具有量化功能?

发布时间:2020-12-16 09:25:43 所属栏目:百科 来源:网络整理
导读:我有一个缓冲区,有许多正16位值(存储为双精度数),我想将其量化为8位(0-255个值). 根据Wikipedia,过程将是: 标准化16位值.即找到最大的并与此分开. 使用Q(x)公式,M = 8. 所以我想知道,如果C有一个可以进行量化的函数,或者有人知道我可以使用的C实现吗? 满满
我有一个缓冲区,有许多正16位值(存储为双精度数),我想将其量化为8位(0-255个值).

根据Wikipedia,过程将是:

>标准化16位值.即找到最大的并与此分开.
>使用Q(x)公式,M = 8.

所以我想知道,如果C有一个可以进行量化的函数,或者有人知道我可以使用的C实现吗?

满满的爱,
路易丝

解决方法

假设值d在区间[0.0,max]中:

unsigned char quantize(double d,double max)
{
    return (unsigned char)((d / max) * 255.0);
}

我不确定你的意思是“16位值;”在使用IEEE-754的任何系统上,双精度值均为64位.但是,如果您具有其他数字类型的值,则该过程实际上是相同的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读