Метод is_power_of_two
Метод is_power_of_two проверяет,
является ли число степенью двойки. Он возвращает
true, если число равно 2ⁿ для некоторого
неотрицательного целого n, и false в противном
случае. Метод не принимает параметров и работает
с текущим значением числа типа i32.
Стоит помнить, что число 1 (2⁰) также является степенью двойки, а вот 0 и отрицательные числа степенями двойки не являются.
Синтаксис
i32.is_power_of_two()
Пример
Давайте проверим, является ли число 8
степенью двойки:
fn main()
{
let res = 8i32.is_power_of_two();
println!("{}", res);
}
Результат выполнения кода:
true
Пример
Давайте проверим, является ли число 10
степенью двойки:
fn main()
{
let res = 10i32.is_power_of_two();
println!("{}", res);
}
Результат выполнения кода:
false
Пример
Давайте проверим граничные случаи: число 1,
число 0 и отрицательное число -4:
fn main()
{
println!("{}", 1i32.is_power_of_two());
println!("{}", 0i32.is_power_of_two());
println!("{}", (-4i32).is_power_of_two());
}
Результат выполнения кода:
true
false
false
Пример
Давайте найдём все степени двойки в диапазоне
от 1 до 16:
fn main()
{
for i in 1..=16 {
if i.is_power_of_two() {
println!("{}", i);
}
}
}
Результат выполнения кода:
1
2
4
8
16
Смотрите также
-
метод
next_power_of_two,
который возвращает следующую степень двойки -
метод
count_ones,
который считает количество единичных битов -
метод
leading_zeros,
который считает количество ведущих нулей -
метод
trailing_zeros,
который считает количество замыкающих нулей