首页 > 解决方案 > 使用浮点可以有效地模拟哪些整数运算?

问题描述

我需要在本机支持 16 位整数数学和 32 位浮点运算的处理器上工作。一些针对处理器的算法要求整数数学精度高于 16 位。最直接的选择是使用 16 位整数运算进行模拟。我注意到一些架构支持 24 位整数数学运算。我怀疑这与尾数大小为 24 位有关。所以浮点单元以某种方式被用于整数数学。在某些情况下是否可以使用浮点指令来提高效率?

标签: floating-pointintegernumerical-methods

解决方案


假设 IEEE-754 浮点,任何幅度高达 2^24 的整数都是可精确表示的,并且所有产生范围内结果的操作都将产生精确的整数结果。(当然,您需要手动处理除法结果的舍入。)对于更广泛的整数类型,有某些 FP 技术(基于将单个数字存储为具有非重叠有效位的多个浮点数的总和)但那些可能比仅仅进行传统的多字算术运算要慢得多。


推荐阅读