似乎某些具有输出的函数可能会使用if语句作为底层实现,从而导致分支。我不这么认为,但我想知道。
对于符号(x),如果数字为正数,负数或零,则分别重新运行1,-1和0。
那么这个功能如何运作?
答案 0 :(得分:7)
实施细节始终是特定于实施的。因此,如何实现此构造完全取决于供应商(以及最终,底层硬件的能力)。
但是,任何真实世界的实现都不太可能使用sign()
操作的分支。通过查看大多数现实世界浮点格式中存在的符号位,可以轻松确定符号,尤其是IEE 754。这可以通过逻辑轻松实现 - 比典型的浮点算术功能更容易实现。