【发布时间】:2019-01-17 18:10:05
【问题描述】:
我想将无符号整数 5432 乘以 0.01,然后加/减 0.3。我不想使用浮点数,而是想使用定点算术。这是我的步骤:
1) ((1 固定点 Q0.16
2) 655 * 5432 = 3557960 => 定点 Q16.16
3) ((1 不动点 Q0.16
4) 添加 0.3:3557960 + 19660 = 3577620 => 转换为浮点 = 54.59,这与使用浮点计算几乎相同:5432 * 0.01 + 0.3 = 54.62
5) 减去 0.3:找到 19660 => 45876 的补码,现在是 3577620 + 45876 = 3623496 => 55.29,这与预期不符 5432 * 0.01 - 0.3 = 54.02
谁能验证我在第 1-4 点中是否正确,以及我在第 5 点中遗漏了什么?
【问题讨论】:
标签: math twos-complement fixed-point