strtoul()函数 – Swift

我正在尝试创建一个快速的iOS程序,将数字转换为dec,bin和hex数字。 我遇到了strtoulfunction,但不太明白如何使用它,有人能够解释它吗? 谢谢!

方法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" 

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

真的听起来你想要使用NSString

从它的声音来看,您希望将无符号整数转换为十进制,hex和二进制。

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

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

将整数转换为hex并将其存储在变量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)