如何在Swift中将十六进制转换为带符号的浮点数?使用正数可以正常工作,但不适用于负数 [英] How do you convert a hex to signed float in Swift? Works fine with positive number but doesn't work on negative

查看:256
本文介绍了如何在Swift中将十六进制转换为带符号的浮点数?使用正数可以正常工作,但不适用于负数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

let hexString = "0x42f9b6c9"
let toInt = Int32(truncatingBitPattern: strtoul(self, nil, 16))
let toFloat = Float(bitPattern: UInt32(self))

结果:1​​24.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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆