Swift中的二进制到十六进制

德扬·斯克莱达(Dejan Skledar)

我有一个二进制字符串(例如“ 00100100”),我希望它以十六进制形式(如“ 24”)。

是否有编写方法在Swift中将Binary转换为十六进制?

马丁·R

可能的解决方案:

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()来根据给定的基数将字符串转换为整数。

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

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
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python二进制到多十六进制

来自分类Dev

二进制到十六进制和十六进制到二进制

来自分类Dev

二进制到十六进制和十六进制到二进制

来自分类Dev

C中的二进制到十进制和十六进制

来自分类Dev

在Swift中在十进制,二进制和十六进制之间转换

来自分类Dev

Nodejs中的十六进制转二进制

来自分类Dev

十六进制字符串到Java中的二进制

来自分类Dev

十六进制字符串到Java中的二进制

来自分类Dev

目标C中的十六进制到二进制

来自分类Dev

C中的十六进制到二进制转换显示错误的输出

来自分类Dev

十六进制到二进制(一次2十六进制数字)-python

来自分类Dev

十六进制到二进制转换的填充,因此每个十六进制数字产生4位

来自分类Dev

从十六进制转换为二进制值

来自分类Dev

Python二进制转换为十六进制

来自分类Dev

二进制/十六进制浮点输入

来自分类Dev

将十六进制转换为二进制

来自分类Dev

将十六进制转换为二进制

来自分类Dev

将二进制转换为十六进制

来自分类Dev

读取文件为二进制/十六进制

来自分类Dev

查看二进制而不是十六进制

来自分类Dev

将十六进制转换为二进制

来自分类Dev

二进制以十六进制值的形式吐出

来自分类Dev

将十六进制转换为二进制

来自分类Dev

Lua:十六进制字到二进制的转换

来自分类Dev

从C ++到C#的二进制/十六进制数据的编组/ DLL导入

来自分类Dev

十六进制到二进制字符串Java

来自分类Dev

位板:十六进制到二进制转换

来自分类Dev

从C ++到C#的二进制/十六进制数据的编组/ DLL导入

来自分类Dev

十六进制值的常规字符串到二进制字符串