Преобразование целого числа из десятичного числа в восьмеричное — распространенная задача в программировании. В этой статье блога мы рассмотрим различные методы Swift для преобразования целого числа в восьмеричное представление. Мы предоставим примеры кода для каждого метода, что позволит вам выбрать тот, который соответствует вашим потребностям.
Метод 1: использование строковой интерполяции.
Один простой подход — использовать строковую интерполяцию для преобразования целого числа в восьмеричное строковое представление.
let number = 42
let octalString = String(format: "%o", number)
print(octalString) // Output: 52
Метод 2: использование параметра radixинициализатора String
Инициализатор Stringв Swift предоставляет radixпараметр, который позволяет нам указать желаемую систему счисления. Мы можем использовать этот параметр для преобразования целого числа в восьмеричное строковое представление.
let number = 42
let octalString = String(number, radix: 8)
print(octalString) // Output: 52
Метод 3. Использование NumberFormatter
класса Swift NumberFormatterобеспечивает удобный способ форматирования чисел на основе различных систем счисления, включая восьмеричную.
let number = 42
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 0
formatter.maximumIntegerDigits = 0
formatter.minimumIntegerDigits = 1
formatter.groupingSeparator = ""
formatter.locale = Locale(identifier: "en_US_POSIX")
let octalString = formatter.string(from: NSNumber(value: number))!
print(octalString) // Output: 52
Метод 4: использование побитовых операций
В Swift мы также можем использовать побитовые операции для преобразования целого числа в восьмеричное представление. Этот метод предполагает извлечение отдельных цифр путем выполнения побитовых операций и их последующее объединение для формирования восьмеричного числа.
func decimalToOctal(_ number: Int) -> Int {
var decimal = number
var octal = 0
var i = 1
while (decimal != 0) {
octal += (decimal % 8) * i
decimal /= 8
i *= 10
}
return octal
}
let number = 42
let octalNumber = decimalToOctal(number)
print(octalNumber) // Output: 52
В этой статье мы рассмотрели различные методы преобразования целого числа в восьмеричное представление в Swift. Мы рассмотрели интерполяцию строк, параметр radixинициализатора String, NumberFormatterи побитовые операции. Каждый метод имеет свои преимущества, поэтому выберите тот, который лучше всего соответствует вашим требованиям. Имея в своем распоряжении эти методы, вы можете легко преобразовать целые числа в восьмеричные в своих программах на Swift.