Swift 中无符号整数到负整数

2024-01-06

我正在处理 Pebble 加速度计数据,需要将负整数的无符号表示形式转换为正常数字(例如,请注意前两个)。

[X: 4294967241, Z: 4294967202, Y: 22] [X: 4294967278, Z: 4294967270, Y: 46] [X: 4294967274, Z: 4294967278, Y: 26] [X: 4294967221, Z: 85, Y: 4294967280] [X: 4294967247, Z: 117, Y: 4294967266]

使用 Objective C 我已经成功地通过简单的方式做到了这一点[number intValue]。然而,使用 Swift 我找不到一种方法来做到这一点。我试过了Int(number),但我得到相同的值。


你总是可以做一个unsafeBitcast如果您收到错误的类型:

unsafeBitCast(UInt32(4294967009), Int32.self)  // -287

例如,这将转换UInt32 to an Int32

EDIT: vacawama https://stackoverflow.com/users/1630618/vacawama展示了一个更好的解决方案,没有令人讨厌的unsafe:

Int32(bitPattern: 4294967009)

多谢!改用这个,它很安全(显然)而且可能更快

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift 中无符号整数到负整数 的相关文章

随机推荐