Битовое И для целых в Rust
Бит результата равен единице, только если
единица в обоих числах на этом месте.
В остальных разрядах в ответе будет ноль.
Знак & ставят между двумя целыми
одной ширины.
Так отбирают общие единичные разряды или
накладывают маску: нули в маске гасят
соответствующие биты второго операнда.
Для учебных примеров удобен тип u8,
где все восемь разрядов видны на маленьких
числах.
Сравним два значения и выведем результат:
fn main() {
let a = 5u8;
let b = 3u8;
let r = a & b;
println!("{}", r);
}
Даны числа:
let a = 7u8;
let b = 4u8;
Оставьте единицы только там, где они
есть и у a, и у b,
запишите результат в r и выведите
его из main.
Даны числа:
let x = 9u8;
let y = 6u8;
Найдите число, где единица только в
разрядах, где и x, и y
имеют единицу, и выведите его.
Даны числа:
let n = 15u8;
let mask = 10u8;
Сохраните в n только те разряды,
где в mask стоит единица, и
выведите итог.