快速处理八进制数

Jee*_*eef 1 octal swift

我可以轻松地将十进制数转换为八进制数,但我试图反过来做却被卡住了。

let decimal = 11_224_393
let octString = String(rawAddress, radix: 8, uppercase: false)
let octal = octString.toInt()
Run Code Online (Sandbox Code Playgroud)

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

如:

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

func oct2dec(octal : Int) -> Int {
    // what goes here?
}
Run Code Online (Sandbox Code Playgroud)

Sup*_*tar 5

只需使用 Swift 原生八进制文字和初始值设定项String来自 integer | IntfromString

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

let decimalIntFromOctalString = Int(octalString, radix: 0o10) // 668
let octalStringFromInt = String(octalInt, radix: 0o10) // "1234"
Run Code Online (Sandbox Code Playgroud)

对于您的特定用例:

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)
}
Run Code Online (Sandbox Code Playgroud)