swift - 快速处理八进制数

标签 swift octal

我可以轻松地将十进制数转换为八进制数,但我正在尝试进行相反的操作,但遇到了困难。

let decimal = 11_224_393
let octString = String(rawAddress, radix: 8, uppercase: false)
let octal = octString.toInt()

问题

我想要一个给定八进制数字 Int 的函数,将它作为八进制读入并将其转换为十进制

比如:

// oct2dec(777) = 511
// oct2dec(10) = 8

func oct2dec(octal : Int) -> Int {
    // what goes here?
}

最佳答案

只需使用 Swift 原生 octal literals和初始化器 ( String from integer | Int from String )

let octalInt = 0o1234 // 668
let octalString = "1234" // "1234"

let decimalIntFromOctalString = Int(octalString, radix: 0o10) // 668
let octalStringFromInt = String(octalInt, radix: 0o10) // "1234"

对于您的特定用例:

let decimal = 11_224_393
let octString = String(rawAddress, radix: 0o10, uppercase: false)
guard let octal = Int(octString, radix: 0o10) else {
    print("octString was not a valid octal string:", octString)
}

关于swift - 快速处理八进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28745242/

相关文章:

swift - 如何减少导航栏中项目之间的间距?

ios - 在 MVVM 中设置委托(delegate)的正确方法

Ruby 在看跌期权中不会转义 oct

Python 将IP转换为八进制地址

d - 为什么 int x=08;当 int x=078 时有效;在 `DMD` 中无效?

ios - 与 UITableViewDataSource 协议(protocol)混淆。与之前的冲突

ios - 从通知中心删除重复的远程通知

ios - UIApplicationDelegate 但对于每个 ViewController

swift - 如何在 Swift 3 中将小数八进制转换为十六进制小数,反之亦然?

c++ - 在C++中递归地从十进制到八进制。以std::string格式输出