1. Напишите логическую операцию и маску (в шестнадцатеричной системе счисления), которые нужно применить, чтобы ОБНУЛИТЬ указанные биты 16-битного целого числа (биты нумеруются справа налево, начиная с 0). 1. {8, 5, 7}
2. Напишите логическую операцию и маску (в шестнадцатеричной системе счисления), которые нужно применить, чтобы УСТАНОВИТЬ указанные биты 16-битного целого числа.
{9, 2, 3}
3. Выполните логическую операцию «исключающее ИЛИ» между заданными числами и запишите в ответе полученное число в шестнадцатеричной системе счисления.
0x36 xor 0x1B
4. Число записано в указанных битах 16-битного целого числа, хранящегося в переменной N. Какие операции нужно выполнить, чтобы записать это число в переменную X? Маски для выполнения логических операций записывайте в шестнадцатеричной системе счисления
биты с 9 по 11
я ничего в этом не понимаю
1. Для обнуления указанных битов 16-битного целого числа, нам необходимо использовать операцию логического И с инвертированой маской указанных битов. Маска будет числом, у которого только биты 8, 5 и 7 установлены в значение 1, а остальные биты равны 0. В шестнадцатеричной системе счисления это будет выглядеть как 0x28A2.
2. Для установки указанных битов 16-битного целого числа, нам необходимо использовать операцию логического ИЛИ с маской указанных битов. Маска будет числом, у которого только биты 9, 2 и 3 установлены в значение 1, а остальные биты равны 0. В шестнадцатеричной системе счисления это будет выглядеть как 0x026C.
3. Логическая операция "исключающее ИЛИ" (XOR) выполняется над двумя числами побитово, где результат будет 1 только в случае, если соответствующие биты обоих чисел различаются. В данном случае, операцию нужно выполнить над числами 0x36 и 0x1B.
Выполнение операции XOR:
0 0 1 1 0 1 1 0 (0x36)
XOR 0 0 0 1 1 0 1 1 (0x1B)
________________
0 0 1 0 1 1 0 1 (0x2D)
Полученное число в шестнадцатеричной системе счисления будет 0x2D.
4. Для записи числа в указанные биты 16-битного целого числа, хранящегося в переменной N, нам необходимо выполнить две операции: сначала сбросить указанные биты числа N, а затем установить эти биты равными значениям указанного числа.
Для сброса указанных битов, мы используем операцию логического И с инвертированной маской указанных битов. Маска будет числом, у которого только биты с 9 по 11 установлены в значение 0, а все остальные биты равны 1. В шестнадцатеричной системе счисления это будет выглядеть как 0xF7FF.
Затем, для установки указанных битов, мы используем операцию логического ИЛИ с маской указанных битов, где эти биты числа X будут равны значениям указанного числа. Маска будет числом, у которого только биты с 9 по 11 установлены в значение 1, а все остальные биты равны 0. В шестнадцатеричной системе счисления это будет выглядеть как 0x0700.
Полученное число X будет равно результату выполнения следующих операций:
X = (N & 0xF7FF) | 0x0700
Надеюсь, мой ответ был понятен для вас. Если у вас остались какие-либо вопросы, я с радостью на них отвечу!