【问题标题】:How to convert the byte data of Int32 to UInt32 and back?如何将 Int32 的字节数据转换为 UInt32 并返回?
【发布时间】:2015-02-17 20:08:20
【问题描述】:

学术性质的问题:
Int32的值为-1的字节数据如何转换成UInt32? (SWIFT 能做到吗?)

理解:
我知道 -1 不是一个可以用无符号整数表示的值,因为 UInt 只包含 -1 以上的整数

但我也知道 Int32 和 UInt32 占用相同的字节空间量(4*8=32)
该字节空间应该能够用于任何一种类型,不管它是否代表相同的值......它显然不会。

结论:
应该有一些简单的方法来获取 Int32 的原始位数据并将其用于 UInt32...

【问题讨论】:

  • 你试过什么?为什么这是一个 Swift/Objective-C 问题(除非你显示代码,这是一个通用的数字问题)?

标签: swift int byte uint


【解决方案1】:

通过 bitPattern 转换变量(感谢 Jthora)。为此,这里有很多帮助:

对于 32 位,有符号时为 0xffffffff=> -1,无符号时为 4294967295。

【讨论】:

  • 答案是使用 bitPattern: 方法将 Int32 转换为 UInt32! (不知道 bitPattern: 方法) 编辑你的答案以包含 bitPattern 的东西,我会绿色检查你!
猜你喜欢
  • 2020-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-18
  • 1970-01-01
  • 2014-02-21
  • 2022-12-09
  • 2019-03-09
相关资源
最近更新 更多