【发布时间】:2019-11-01 16:55:33
【问题描述】:
我想用 8 位字表示 [0.0, 1.0] 范围内的数字(最好包括两个端点)。
我希望能够有效地将它们相乘,并且加法/减法应该最佳地限制为 [0,1],而不是溢出。
例如,如果 0xFF 代表 1.0 而 0x00 代表 0.0,那么乘法应该产生例如
0x3F (0.247) = 0x7F (0.499) * 0x7F (0.499)
我找到了https://courses.cs.washington.edu/courses/cse467/08au/labs/l5/fp.pdf,我认为论文中将 U(0,8) 命名的内容与我正在寻找的内容相对应,但我不明白如何实现例如乘法。
是否有一个 c++ 库可以有效地实现这种数据类型,或者有人可以指出必要的数学吗?
我不需要除法,只需要乘法加减法
【问题讨论】:
标签: fixed-point