gpt4 book ai didi

swift - 定义 Int 为零和负零时的符号

转载 作者:行者123 更新时间:2023-11-28 10:40:12 24 4
gpt4 key购买 nike

我有一个 Int 类型的值。我需要定义这个值的标志。而且我不知道如何使用 -0 处理边缘情况。

signum - returns -1 if this value is negative and 1 if it’s positive; otherwise, 0

0.signum()  // 0
-0.signum() // 0

我尝试将其转换为 Double,但也无济于事。

Double(-0).floatingPointClass == .negativeZero // false

然后到 String

String(-0) // "0"

这个问题有解决办法吗?还是Int类型的0-0是同一个值?

最佳答案

这是不可能的。 0-0 没有作为 Int 的单独表示。 Swift 中的整数(和其他编程语言一样)使用 2's complement表示。要取反一个数,您需要反转所有位并添加 1。从 Int 0 开始,所有位都是 0。反转所有位导致所有 1,然后添加 1 导致它返回到所有 0 作为进位钻头从顶部滚落。所以 0-0 具有完全相同的表示。

关于swift - 定义 Int 为零和负零时的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50889483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com