Операции с целыми числами Решение задач
| Ва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 с/с | ||||||||||||||||






