gpt4 book ai didi

swift 3 : Negative Int to hexadecimal

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

大家好

我需要将 Int 转换为其十六进制值。示例:-40 => D8

我有一个用于正(或无符号)Int 的工作方法,但它不能像预期的那样对负数起作用。这是我的代码。

class func encodeHex(data:[Int]) -> String {
let hexadecimal = data.reduce("") { (string , element) in
var append = String(element, radix:16 , uppercase : false)
if append.characters.count == 1 {
append = "0" + append
}
return string + append
}
return hexadecimal
}

如果我超过 -40,我得到 -28。

有人可以帮忙吗?谢谢:)

最佳答案

我根据您现有的代码假设所有整数都在范围内-128 ... 127. 那么这会起作用:

func encodeHex(data:[Int]) -> String {
return data.map { String(format: "%02hhX", $0) }.joined()
}

"%02hhX" 格式打印最低有效字节给定以 16 为基数的 2 位整数。

例子:

print(encodeHex(data: [40, -40, 127, -128]))
// 28D87F80

关于 swift 3 : Negative Int to hexadecimal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40807031/

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