Привет, я пытаюсь быстро преобразовать восьмеричное число в десятичное. Какой самый простой способ сделать это?
Как преобразовать восьмеричное число в десятичное в Swift
Ответы (2)
От восьмеричного к десятичному
Для этого существует специальный инициализатор Int
let octal = 10
if let decimal = Int(String(octal), radix: 8) {
print(decimal) // 8
}
От десятичной к восьмеричной
let decimal = 8
if let octal = Int(String(decimal, radix: 8)) {
print(octal) // 10
}
Примечание 1. Обратите внимание: круглые скобки в двух фрагментах кода отличаются.
Примечание 2. Инициализатор
Int
может дать сбой для строковых представлений числа с более экзотическими системами счисления. Прочтите комментарий @AMomchilov ниже.
Int
может дать сбой для строковых представлений чисел с более экзотическими системами счисления. Вам все равно не нужно это преобразование Int
, вы можете просто распечатать результат вызова String(_:, radix:)
- person Alexander; 19.07.2016
вы можете легко преобразовать восьмеричное число в десятичное. Swift изначально поддерживает восьмеричный синтаксис. Вы должны написать «0o» перед восьмеричным числом.
let number = 0o10
print(number) // it prints the number 8 in decimal
Целочисленные литералы
Целочисленные литералы представляют целые значения неопределенной точности. По умолчанию целочисленные литералы выражаются в десятичном формате; вы можете указать альтернативную базу, используя префикс. Двоичные литералы начинаются с 0b, восьмеричные литералы начинаются с 0o, а шестнадцатеричные литералы начинаются с 0x.
Я надеюсь, что это поможет вам