如何在Swift中将十六进制转换为带符号的浮点数?使用正数可以正常工作,但不适用于负数 [英] How do you convert a hex to signed float in Swift? Works fine with positive number but doesn't work on negative
本文介绍了如何在Swift中将十六进制转换为带符号的浮点数?使用正数可以正常工作,但不适用于负数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
let hexString = "0x42f9b6c9"
let toInt = Int32(truncatingBitPattern: strtoul(self, nil, 16))
let toFloat = Float(bitPattern: UInt32(self))
结果:124.857
RESULT: 124.857
let hexString = "0xc2f9b6c9"
let toInt = Int32(truncatingBitPattern: strtoul(self, nil, 16))
let toFloat = Float(bitPattern: UInt32(self))
应用在此处崩溃,因为该值为负值,预期结果为-124.857
app crashes here because the value is negative, expected result is -124.857
请帮助.谢谢!
推荐答案
strtoul
表示字符串为无符号长.尝试strtol
strtoul
means string to unsigned long. Try strtol
这篇关于如何在Swift中将十六进制转换为带符号的浮点数?使用正数可以正常工作,但不适用于负数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文