РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
775 of 1245 menu

Трейт Octal

Трейт Octal из модуля std::fmt позволяет форматировать целые числа в восьмеричной системе счисления. Он используется совместно с плейсхолдером {:o} в макросах форматирования, таких как println!, print!, format!, write! и других. Параметром трейт принимает ссылку на форматтер Formatter, который управляет процессом вывода числа.

Реализация трейта Octal означает, что тип можно отформатировать в восьмеричном виде. Все стандартные целочисленные типы Rust (i8, u8, i32, u32, i64, u64, isize, usize и другие) уже реализуют этот трейт.

Синтаксис

// Использование плейсхолдера {:o} в макросах println!("{:o}", value);

Пример

Давайте выведем число 64 в восьмеричной системе счисления:

fn main() { let num = 64; println!("{:o}", num); }

Результат выполнения кода:

100

Пример

Давайте выведем число 255 в восьмеричной системе счисления:

fn main() { let num = 255; println!("{:o}", num); }

Результат выполнения кода:

377

Пример

Давайте выведем несколько чисел в восьмеричной системе счисления с помощью макроса format!:

fn main() { let a = 8; let b = 9; let c = 10; let res = format!("{:o} {:o} {:o}", a, b, c); println!("{}", res); }

Результат выполнения кода:

"10 11 12"

Пример

Давайте выведем отрицательное число в восьмеричной системе счисления. Для знаковых типов отрицательные числа выводятся в дополнительном коде:

fn main() { let num: i32 = -8; println!("{:o}", num); }

Результат выполнения кода:

37777777770

Пример

Давайте реализуем трейт Octal для собственной структуры:

use std::fmt; struct Point { x: u32, y: u32, } impl fmt::Octal for Point { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "({:o}, {:o})", self.x, self.y) } } fn main() { let p = Point { x: 8, y: 64 }; println!("{:o}", p); }

Результат выполнения кода:

(10, 100)

Смотрите также

  • трейт Binary,
    который форматирует числа в двоичной системе
  • трейт LowerHex,
    который форматирует числа в шестнадцатеричной системе
  • трейт UpperHex,
    который форматирует числа в шестнадцатеричной системе в верхнем регистре
  • макрос format!,
    который создаёт строку с помощью форматирования
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить