strtoul()函数 - Swift

时间:2015-03-03 04:44:16

标签: ios swift

我试图创建一个快速的iOS程序,将数字转换为dec,bin和hex数字。我已经遇到过strtoul功能,但是不太了解如何使用它,有人能够解释它吗?谢谢!

2 个答案:

答案 0 :(得分:4)

方法strtoul使用起来非常简单。您还需要使用String(radix :())将其转换为另一个方向。您可以创建一个从hexaToDecimal或binaryToDecimal转换的扩展名,如下所示:

用法字符串(基数:())

extension Int {
    var toBinary: String {
        return String(self, radix: 2)
    }
    var toHexa: String {
        return String(self, radix: 16)
    }
}

用法strtoul()

extension String {
    var hexaToDecimal: Int {
        return Int(strtoul(self, nil, 16))
    }
    var hexaToBinary: String {
        return hexaToDecimal.toBinary
    }
    var binaryToDecimal: Int {
        return Int(strtoul(self, nil, 2))
    }
    var binaryToHexa: String {
        return binaryToDecimal.toHexa
    }
}

测试

let myBinFromInt = 255.toBinary         // "11111111"
let myhexaFromInt = 255.toHexa          // "ff"

let myIntFromHexa  = "ff".hexaToDecimal          // 255
let myBinFromHexa  = "ff".hexaToBinary           // "11111111"

let myIntFromBin   = "11111111".binaryToDecimal  // 255
let myHexaFromBin  = "11111111".binaryToHexa     // "ff"

答案 1 :(得分:0)

strtoul()函数将str中的字符串转换为unsigned long 值。转换是根据给定的基数完成的,基数必须介于2和36之间,或者是特殊值0。

真的听起来你想使用NSString

从听起来,你想要将无符号整数转换为十进制,十六进制和二进制。

例如,如果您有一个整数n

var st = NSString(format:"%2X", n)

会将整数转换为十六进制并将其存储在变量st中。

//NSString(format:"%2X", 10) would give you 'A' as 10 is A in hex
//NSString(format:"%2X", 17) would give you 11 as 17 is 11 in hex

二进制:

var st = NSString(format:"%u", n)

十进制(小数点后两位)

var st = NSString(format:"%.02f", n)