Операции с целыми числами Решение задач
Ваpиант 19 | Ваpиант 20 | Ваpиант 21 |
1. {5, 8, 3} | 1. {9, 6, 8} | 1. {2, 9, 6} |
2. {9, 6, 2} | 2. {3, 1, 5} | 2. {3, 4, 0} |
3. C316 xor CA16 | 3. 7116 xor 8716 | 3. 2E16 xor C516 |
4. биты с 6 по 8 | 4. биты с 6 по 9 | 4. биты с 13 по 15 |
Таблица соответствия чисел 2 и 16 систем счисления
16 c/c | 2 с/с | 16 c/c | 2 с/с | |||||||
A | ||||||||||
B | ||||||||||
C | ||||||||||
D | ||||||||||
E | ||||||||||
F |
Задание 1. Напишите логическую операцию и маску (в шестнадцатеричной системе счисления), которые нужно применить, чтобы ОБНУЛИТЬ указанные биты 16-битного целого числа (биты нумеруются справа налево, начиная с 0).
(Идея решения: Операция «И» с маской ….)
|
|
Обнулить биты {5, 8, 3}
Решение
Обнулить бит можно, если логически умножить его (операция логическое "И") на маску, содержащую в обнуляемом разряде 0, а в остальных 1.
Если считать биты справа налево и самый правый считать нулевым, то 16-битное число будет иметь нумерацию битов от 0 до 15.
По условию обнуляются разряды 3,5,8 – запишем в них 0, в остальные - 1
разряд | ||||||||||||||||
Маска | ||||||||||||||||
16 с/с |
F |
E |
D |
Ответ: FED7
Обнулить биты {9, 6, 8}
Решение
Обнулить бит можно, если логически умножить его (операция логическое "И") на маску, содержащую в обнуляемом разряде 0, а в остальных 1.
Если считать биты справа налево и самый правый считать нулевым, то 16-битное число будет иметь нумерацию битов от 0 до 15.
По условию обнуляются разряды 6,8,9 – запишем в них 0, в остальные - 1
разряд | ||||||||||||||||
Маска | ||||||||||||||||
16 с/с |
F |
C |
B |
F |
Ответ: FCBF
Самостоятельно Обнулить {2, 9, 6}
Задание 2. Напишите логическую операцию и маску (в шестнадцатеричной системе счисления), которые нужно применить, чтобы УСТАНОВИТЬ указанные биты 16-битного целого числа. (Идея решения: Операция «ИЛИ» с маской)
Установить биты {9, 6, 2} {3, 1, 5} {3, 4, 0} (самостоятельно)
Решение
Установить бит можно, если логически сложить его (операция логическое "ИЛИ") с маской, содержащую в устанавливаемом разряде 1, а в остальных 0.
Если считать биты справа налево и самый правый считать нулевым, то 16-битное число будет иметь нумерацию битов от 0 до 15.
|
|
По условию обнуляются разряды 6,8,9 – запишем в них 1, в остальные - 0
разряд | ||||||||||||||||
Маска | ||||||||||||||||
16 с/с |