所以我很难实现这个想法。我基本上只是想接受论点'uf'并否定它。我将参数视为 32 位的无符号整数,这相当于单精度浮点数的外观。应该工作相同:有符号位,8 位指数,23 位小数。
但是,当参数为 NaN 时,我只需要返回参数即可。理想情况下,我希望能够在没有任何铸造或高级操作的情况下实现这一点。显然,我应该能够只用按位运算和整数/无符号运算(if、while、||、&&)来做到这一点。
我不知道从哪里开始?我是否只需要提取“uf”的每个部分并分别否定它们(使用按位运算符),然后在最后将它们全部加在一起?我可能会使用 (~uf) + 1 来否定。
对于 NaN,我认识到我只需要检查 8 位部分(exp)中的所有 1 以及小数部分中除 0 之外的任何内容(否则它被认为是无穷大)。
作为重申,这是在 C 中为 32 位系统完成的。