美文网首页Swift
Swift 中将十六进制字符串转化成十进制数值

Swift 中将十六进制字符串转化成十进制数值

作者: BennyLoo | 来源:发表于2018-04-28 19:05 被阅读0次

开发中可能有这种需求:

服务器给了一个表示16进制数的字符串:“8040000”,我们用计算机转换一下知道它的实际意思是一个10进制值——134479872,最终我们的目的是转化成十进制数便于计算和显示。而在程序中,我们只能通过代码实现这个转换过程。

一开始,我的方法是将每一个字符拆分出来,按位计算值再累加,过程繁琐且代码不好看。

后找到一种快速简洁的方式:

        let a = Scanner.init(string: resArr.last!)
        var b:UInt32 = 0
        if withUnsafeMutablePointer(to: &b, {
              a.scanHexInt32($0)
        }){
         print(b)
        }

解释: 首先想到使用 Scanner 做载体浏览,然后发现 Scanner有一个a.scanHexInt32方法,大概描述是找到载体中的16进制内容,转化成Int32数值然后放入传入的指针中。 withUnsafeMutablePointer是获取对象的指针的方式,并允许在闭包内对指针进行修改(这里我们修改了变量b的值),结果返回一个 Bool 值,代表操作是否成功。最终,我们获取的十进制值在b的地址中了。

运行:
//134479872

相关文章

  • Swift 中将十六进制字符串转化成十进制数值

    开发中可能有这种需求: 服务器给了一个表示16进制数的字符串:“8040000”,我们用计算机转换一下知道它的实际...

  • 进制转换总结

    十进制整型转十六进制字符串 十六进制字符串转十进制整型

  • 【华为机试】进制转换

    题目描述: 写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 ) 输入描述: ...

  • 十六进制到十进制转换

    写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )/* 什么叫多组同时输入 ...

  • 大数面试题

    16进制转10进制写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )

  • 试题4:十六进制字符串转十进制字符串

    试题描述:写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 ) C语言解法

  • HJ5 进制转换 2022-03-12 周六

    题目 描述写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。 输入描述:输入一个十六进制的数值字符串。 ...

  • 牛客网华为机试在线训练——进制转换

    题目描述:写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )输入描述:输入一...

  • 进制转换

    写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 ) 输入描述: 输入一个十六...

  • iOS-二进制、十进制、十六进制相互转化

    //十进制转十六进制字符串 //二进制转十进制 //十六进制转二进制 //十六进制转十进制 // 十进制转二进制...

网友评论

    本文标题:Swift 中将十六进制字符串转化成十进制数值

    本文链接:https://www.haomeiwen.com/subject/tnlqhftx.html