我想创建一个快速的iOS程序,将数字转换成十进制,二进制和十六进制数字。我遇到过strtoul功能,但不太明白如何使用它,有人能够解释它吗?谢谢!strtoul()函数 - 斯威夫特
2
A
回答
0
strtoul()函数将str中的字符串转换为无符号长整数 值。转换是根据给定的基础,它必须是包容性的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)
小数(小数点后2位)
var st = NSString(format:"%.02f", n)
3
方法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. 斯威夫特NStask函数
- 2. 斯威夫特转换斯威夫特
- 3. 斯威夫特2斯威夫特3
- 4. 斯威夫特 - JSQMessagesViewController与斯威夫特
- 5. 斯威夫特
- 6. 斯威夫特
- 7. 斯威夫特
- 8. 斯威夫特
- 9. 斯威夫特
- 10. 斯威夫特
- 11. 斯威夫特
- 12. 斯威夫特
- 13. 斯威夫特
- 14. 斯威夫特
- 15. 斯威夫特
- 16. 斯威夫特
- 17. 斯威夫特
- 18. 斯威夫特
- 19. 斯威夫特
- 20. 斯威夫特
- 21. 斯威夫特
- 22. 斯威夫特
- 23. 斯威夫特
- 24. 斯威夫特
- 25. 斯威夫特
- 26. 斯威夫特
- 27. 斯威夫特
- 28. 斯威夫特
- 29. 斯威夫特
- 30. 斯威夫特
苹果已经写了一个巨大的文档... – ByteHamster 2015-03-03 05:24:06
这与Xcode没有任何关系... – 2015-03-03 06:44:53