gpt4 book ai didi

swift - Swift 中的二进制到十六进制

转载 作者:可可西里 更新时间:2023-11-01 00:38:08 25 4
gpt4 key购买 nike

我有一个二进制字符串(例如“00100100”),我想要它是十六进制字符串(例如“24”)。

在Swift中有没有编写将二进制转换为十六进制的方法?

最佳答案

可能的解决方案:

func binToHex(bin : String) -> String {
// binary to integer:
let num = bin.withCString { strtoul($0, nil, 2) }
// integer to hex:
let hex = String(num, radix: 16, uppercase: true) // (or false)
return hex
}

只要数字符合 UInt 的范围(32 位或 64 位,取决于平台)。它使用 BSD 库函数 strtoul()根据给定的基数将字符串转换为整数。

对于较大的数字,您必须处理输入成 block 。您还可以添加输入字符串的验证

Swift 3/4 更新:不再需要 strtoul 函数。为无效输入返回 nil:

func binToHex(_ bin : String) -> String? {
// binary to integer:
guard let num = UInt64(bin, radix: 2) else { return nil }
// integer to hex:
let hex = String(num, radix: 16, uppercase: true) // (or false)
return hex
}

关于swift - Swift 中的二进制到十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26529369/

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