我想使用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 ++库可以有效地实现这种数据类型,或者有人可以指出我所需的数学知识?
我不需要除法,只需要乘法,加法和减法
我想使用8位字表示[0.0,1.0]范围内的数字(最好包括两个端点)。我希望能够有效地将它们相乘,并且加法/减法应该...
您选择的定点格式U [0.8]不包含确切的端点值1。此格式的最大值实际上是0.99609375。如果这对您来说足够接近,我们可以讨论一下数学运算。