【发布时间】:2017-02-21 19:32:06
【问题描述】:
我有以下方法在定点乘以两个 32 位数字
19.13 格式。但是我觉得这个方法有问题:
1.5f 向上舍入为2.0f,而-1.5f 向上舍入为-1.0f。
在我看来,-1.5 应该向下舍入到 -2.0f。
首先,当前的舍入是否有意义,如果没有,我该如何更改它 更一致?
static OPJ_INT32 opj_int_fix_mul(OPJ_INT32 a, OPJ_INT32 b) {
OPJ_INT64 temp = (OPJ_INT64) a * (OPJ_INT64) b ;
temp += 4096;
assert((temp >> 13) <= (OPJ_INT64)0x7FFFFFFF);
assert((temp >> 13) >= (-(OPJ_INT64)0x7FFFFFFF - (OPJ_INT64)1));
return (OPJ_INT32) (temp >> 13);
}
【问题讨论】:
标签: fixed-point