我有一个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
会有所帮助或其他方式。
答案 0 :(得分:1)
要将小数UInt32
所代表的4294964296
值转换为Int32
,请执行以下操作:
let valueU32: UInt32 = 4294964296
let value32 = Int32(bitPattern: valueU32)
在内部,它只是位,因此将17
,0x11
和0b10001
分配给一个值都会导致内部设置相同的位。
要查看在特定基础中表示的值,请使用带String
(基数)的radix
构造函数:
print(String(valueU32, radix: 16)) // fffff448