swift - 如何在 Swift 中将十六进制转换为有符号 float ?对于正数工作正常,但对于负数不起作用

标签 swift floating-point hex int32

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

结果:1​​24.857

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

应用程序在此崩溃,因为值为负数,预期结果为 -124.857

请帮忙。谢谢!

最佳答案

strtoul 表示字符串为无符号长整型。尝试strtol

关于swift - 如何在 Swift 中将十六进制转换为有符号 float ?对于正数工作正常,但对于负数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42799129/

相关文章:

ios - 为什么 UIView 的 CALayer.speed 为零会阻止 UIAlertController 的按钮工作?

c - 浮点运算结果如何舍入?

java - 32位精度,什么意思?

ios - 动态类型检查混淆 Swift

swift - AlamoFire(异步)调用中的 UIProgressView 进度更新非常慢

json - 单元测试在 Swift 中使用 REST 调用的方法

c# - 如何在单个整数中编码两个数字?

java - java将String(FF FF FF FF FF FF FF FF FF)转换为int数组

c - 为什么当我指定 "%.2x"时会得到 8 个十六进制数字

java - 将小十六进制字符串转换为整数