在 Swift 中将十六进制转换为十进制

认识多西

我想将十六进制值转换为十进制。所以我试过这个。当值 >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答案中的十进制、二进制和十六进制之间的转换但它并不总是有效。

在线查看此对话请参阅下图以了解有关此对话的更多详细信息。

在此处输入图片说明

有没有其他解决方案可以从十六进制值中减去十进制。?

任何帮助,将不胜感激 !!

马丁·R

FF 8816 位有符号整数的十六进制表示-120您可以先创建一个无符号整数,然后将其转换为具有相同位模式的有符号整数:

let h3 = "FF88"
let u3 = UInt16(h3, radix: 16)!  // 65416
let s3 = Int16(bitPattern: u3)   // -120

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章