1. Напишите логическую операцию и маску (в шестнадцатеричной системе счисления), которые нужно применить, чтобы ОБНУЛИТЬ указанные биты 16-битного целого числа (биты нумеруются справа налево, начиная с 0). 1. {8, 5, 7}

2. Напишите логическую операцию и маску (в шестнадцатеричной системе счисления), которые нужно применить, чтобы УСТАНОВИТЬ указанные биты 16-битного целого числа.

{9, 2, 3}

3. Выполните логическую операцию «исключающее ИЛИ» между заданными числами и запишите в ответе полученное число в шестнадцатеричной системе счисления.

0x36 xor 0x1B

4. Число записано в указанных битах 16-битного целого числа, хранящегося в переменной N. Какие операции нужно выполнить, чтобы записать это число в переменную X? Маски для выполнения логических операций записывайте в шестнадцатеричной системе счисления

биты с 9 по 11

я ничего в этом не понимаю

lexus56ru lexus56ru    3   30.11.2020 17:37    1162

Ответы
LizaRey LizaRey  21.12.2023 20:10
Добрый день!

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

Надеюсь, мой ответ был понятен для вас. Если у вас остались какие-либо вопросы, я с радостью на них отвечу!
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика