menu


ГДЗ по информатике 10 класс Поляков, Еремин §26. Операции с целыми числами с ответами




1. Покажите на примере, как складываются два положительных целых числа, записанные в 8-разрядные ячейки. Что изменится, если числа будут отрицательными?

При сложении двух положительных целых чисел в 8-разрядных ячейках результат записывается в следующей форме. Например, сложение 13 и 7 в двоичной системе:
00001101 (13)
00000111 (7)
= 00010010 (результат: 18).
Если числа отрицательные, используется дополнительный код. Для примера, -13 и -7:
11110011 (-13 в дополнительном коде)
11111001 (-7 в дополнительном коде)
= 11101100 (результат: -20).
Обработка происходит с учётом признака переполнения.

2. При каких комбинациях знаков слагаемых в результате сложения может возникнуть переполнение?

При сложении двух положительных чисел, если результат выходит за границы разрядной сетки.
При сложении двух отрицательных чисел, если результат становится меньше минимально допустимого числа.

3. Какое устройство выполняет в компьютере сложение? Вспомните, что вы о нём знаете.

Сложение выполняется арифметико-логическим устройством (АЛУ). Это часть процессора, которая обрабатывает арифметические и логические операции. АЛУ работает с регистрами, в которых хранятся данные, и использует схемы для выполнения операций, таких как сумматоры.

4. Почему не нужно разрабатывать специальное устройство для вычитания целых чисел?

Устройство для вычитания не нужно, так как вычитание реализуется как сложение с отрицательным числом. Например, A - B = A + (-B). Отрицание числа происходит путём формирования его дополнительного кода.

5. Перемножьте столбиком два положительных целых числа в двоичной системе счисления. Изменится ли алгоритм выполнения операции, если у одного из сомножителей поменять знак?

Умножение двух положительных чисел в двоичной системе счисления
Допустим, перемножаются числа 5 и 3. В двоичной системе:
5 = 101
3 = 011

Процесс умножения столбиком:

scss
Копировать код
    101  (5)
  × 011  (3)
  ------
    101   (101 × 1, смещение на 0 разрядов)
   101    (101 × 1, смещение на 1 разряд)
  ------
   1111   (результат = 15)
Итог: 5 × 3 = 15 (в двоичной системе это 1111).

Если один из сомножителей отрицательный
В двоичной системе с использованием дополнительного кода числа представляются следующим образом:

5 (положительное) = 00000101
-3 (отрицательное) = 11111101 (дополнительный код для -3 на 8 разрядов).
Для выполнения умножения алгоритм изменяется:

Число представляется в дополнительном коде.
Умножение выполняется так же, как для положительных чисел.
Если сомножители имеют разные знаки, результат инвертируется (чтобы получить отрицательное число в результате).
Пример для 5 × (-3):

scss
Копировать код
    00000101   (5)
  × 11111101   (-3, дополнительный код)
  ----------
  (выполняется по правилам умножения столбиком)
  ----------
  Результат = -15 (дополнительный код для отрицательного результата).

6. Почему коды чисел со знаком и без знака нужно сравнивать по-разному?

Коды чисел со знаком и без знака сравниваются по-разному, так как в числах со знаком старший бит определяет знак, а в беззнаковых он входит в разряд величины числа. Например, 10000000 в со знаком — это -128, а без знака — это 128.

7. Почему арифметические операции нельзя отнести к поразрядным?

Арифметические операции нельзя отнести к поразрядным, так как при их выполнении учитываются переносы между разрядами. Например, при сложении 1 + 1 в одном разряде переносится 1 в старший разряд.

8. Как, используя маску, сбросить определённый бит (записать в него 0)?

Для сброса определённого бита маска должна содержать 0 в позиции этого бита и 1 в остальных. Например, чтобы сбросить 4-й бит числа:
Маска: 11101111.
Применяется логическая операция AND (&).

9. Напишите значение маски для того, чтобы сбросить в 16-раз- рядном числе 2 младших бита, не изменяя все остальные. Какую логическую операцию нужно для этого использовать?

Для сброса 2 младших битов в 16-разрядном числе маска:
1111111111111100.
Применяется логическая операция AND (&).

10. Напишите значение маски для того, чтобы установить в 16-разрядном числе 2 старших бита, не изменяя все остальные. Какую логическую операцию нужно для этого использовать?

Для установки 2 старших битов в 16-разрядном числе маска:
1100000000000000.
Применяется логическая операция OR (|).

11. Как, используя логические операции, определить, делится ли число на 4? На 8?

Для определения делимости числа на 4 или 8 с помощью логических операций нужно проверить, равны ли 0 два или три младших бита числа соответственно. Это делается операцией AND:
Для проверки делимости на 4: (число & 3) == 0 (3 = 00000011).
Для проверки делимости на 8: (число & 7) == 0 (7 = 00000111).

12. В каких практических задачах можно применять установку или сброс битов двоичного кода?

Установка и сброс битов двоичного кода применяются в задачах:
Управление настройками оборудования (например, включение или отключение определённых функций).
Обработка данных в коммуникационных протоколах (флаги, индикаторы).
Оптимизация памяти для представления состояния объектов.

13. Каковы возможности операции исключающее ИЛИ?

Операция исключающее ИЛИ (XOR) обладает такими возможностями:
Инвертирует биты, если маска имеет значение 1.
Обеспечивает шифрование/дешифрование, так как повторное применение той же маски возвращает исходное значение.
Используется для проверки на равенство: A ^ B = 0, если A = B.

*14. Попробуйте придумать алгоритм шифрования кода с помощью операции исключающее ИЛИ. Постарайтесь предложить простой алгоритм изменения маски, а не просто использовать константу.

Простым алгоритмом шифрования является применение операции XOR с динамически изменяющейся маской:

Возьмите исходный код и маску.

Шифруйте код: шифрованный_код = исходный_код ^ маска.

После каждого применения изменяйте маску (например, сдвиг влево на 1 или сложение с константой).

Для расшифровки повторите XOR с той же последовательностью масок.

15. Прочитайте ещё раз материал, связанный с переполнением при сложении. Какой логической операцией можно определить, совпадают или нет биты S' и S?

Чтобы определить совпадение битов S' и S, используйте XOR:
S' ^ S == 0 (если биты совпадают) или != 0 (если различны).

16. Какую роль играет операция НЕ при получении отрицательных чисел?

17. Как выполнить инверсию всех битов, не используя логическую операцию НЕ?

Операция НЕ (NOT) инвертирует все биты числа. При работе с отрицательными числами в дополнительном коде операция NOT служит первой частью формирования дополнительного кода, что даёт -A = ~A + 1.

Инверсия всех битов без использования NOT выполняется так:
A ^ 111...111, где 111...111 — маска, состоящая только из единиц.

18. Как обрабатываются самый старший и самый младший биты при различных типах сдвига?

Младший бит выбрасывается, а старший заполняется 0 (логический сдвиг) или копией знакового бита (арифметический сдвиг).
При логическом сдвиге старший бит теряется, а при арифметическом он сохраняет знак числа.

19. Покажите на примерах, что сдвиг влево двоичного кода удваивает число, а сдвиг вправо — уменьшает вдвое.

Сдвиг влево удваивает: 101 (5) << 1 = 1010 (10).
Сдвиг вправо уменьшает вдвое: 1010 (10) >> 1 = 101 (5).

20. Почему логический сдвиг не годится для уменьшения в два раза отрицательных чисел? Как работает арифметический сдвиг?

Логический сдвиг вправо для отрицательных чисел некорректен, так как он заполняет старший бит 0, что меняет знак. Арифметический сдвиг копирует старший бит, сохраняя знак.

*21. Выведите правило вычисления результата арифметического сдвига отрицательного нечётного числа на один разряд вправо. Проверьте, применимо ли это правило к положительным нечётным числам. Как упрощается формула для чётных исходных значений?

Для отрицательного нечётного числа результат арифметического сдвига вправо равен:
(A - 1) / 2.
Проверка для положительных нечётных чисел: формула упрощается до A / 2.
Для чётных чисел правило упрощается до простого деления на 2.

 






ГДЗ по информатике 10 класс Поляков, Еремин Параграф 26

Сообщить о неточной информации или отсутствии ответов
Проверочный код, год рождения Д.И.Менделеева:
В каком задании/вопросе ошибка:
Как должно быть (если в тексте отсутствует вопрос, то пришлите сам вопрос):