UInt32十进制到UInt32十六进制转换

时间:2017-08-02 11:00:36

标签: ios swift type-conversion

我有一个UInt32变量,假设其值为4294964296。我正在尝试将该数字转换为UInt32十六进制格式0xfffff448(不是字符串),如下所示:let valueU32: UInt32 = 0xfffff448。最终我想要实现的是将UInt32数字转换为Int32。目前我想做的是这样:

let valueU32: UInt32 = 0xfffff448
let value32: Int32 = Int32(bitPattern: valueU32)

但是我的小数形式为valueU32,我在这里难以置信,试图将valueU32从十进制形式转换为UInt32十六进制形式。如果有人可以帮助我弄清楚如何完成这项工作,那么将UInt32转换为Int32会有所帮助或其他方式。

1 个答案:

答案 0 :(得分:1)

要将小数UInt32所代表的4294964296值转换为Int32,请执行以下操作:

let valueU32: UInt32 = 4294964296
let value32 = Int32(bitPattern: valueU32)

在内部,它只是位,因此将170x110b10001分配给一个值都会导致内部设置相同的位。

要查看在特定基础中表示的值,请使用带String(基数)的radix构造函数:

print(String(valueU32, radix: 16))  // fffff448