我想将十六进制值转换为十进制。所以我试过这个。当值 >0 时,它工作正常。但是当 value <0 时,则返回错误的值。
let h2 = “0373”
let d4 = Int(h2, radix: 16)!
print(d4) // 883
let h3 = “FF88”
let d5 = Int(h3, radix: 16)!
print(d5) // 65416
当我通过 FF88 时,它返回 65416。但实际上它是 -120。
现在,我正在关注这个在 Swift答案中的十进制、二进制和十六进制之间的转换。但它并不总是有效。
请在线查看此对话。请参阅下图以了解有关此对话的更多详细信息。
有没有其他解决方案可以从十六进制值中减去十进制。?
任何帮助,将不胜感激 !!
FF 88
是16 位有符号整数的十六进制表示-120
。您可以先创建一个无符号整数,然后将其转换为具有相同位模式的有符号整数:
let h3 = "FF88"
let u3 = UInt16(h3, radix: 16)! // 65416
let s3 = Int16(bitPattern: u3) // -120
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句