我想創建一個快速的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