gpt4 book ai didi

ios - Signed Hex 到 Signed Int Swift

转载 作者:搜寻专家 更新时间:2023-10-31 22:00:26 26 4
gpt4 key购买 nike

我见过很多将 hex 转换为 int 的问题,但这些都是 unsigned-> unsigned 的变体。如何将带符号的十六进制转换为 Int?

例如。

somefunc('0xfffff830')
= -2000

最佳答案

您的问题暗示您正在处理 32 位有符号整数(否则 0xfffff830 不能被认为是否定的),所以这会起作用:

let num = "0xfffff830"

let x = Int32(truncatingBitPattern: strtoul(num, nil, 16))
println(x) // -2000

strtoul() 将十六进制字符串转换为无符号整数 UInt,并且Int32(truncatingBitPattern:) 创建一个(带符号的)32 位整数从给定参数的最低 32 位开始。


Swift 4 更新:

let num = "0xfffff830"
let x = Int32(bitPattern: UInt32(num.dropFirst(2), radix: 16) ?? 0)
print(x) // -2000

关于ios - Signed Hex 到 Signed Int Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31323924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com