ГДЗ по информатике, 10 класс, Босова, номер 13.8: Представление чисел в компьютере
Информатика — Босова Л.Л., Босова А.Ю.
Юлия Громова, преподаватель информатики Шпаргача обновлено 12 сентября 2026
Условие
Для хранения целого числа со знаком в компьютере используется два байта. Сколько единиц содержит внутреннее представление числа -101, записанного
а) в прямом коде
б) в дополнительном коде?
Номер как в учебнике. Условие — полный пересказ редакции: те же пункты, числа и факты, не цитата из книги.
Пошаговое решение
В данной задаче требуется определить количество единиц в двоичном представлении числа -101 при использовании двух байт (16 бит). Мы рассмотрим два случая: прямое кодирование и дополнительное кодирование.
Шаг 1. Представление числа в прямом коде
Прямой код отрицательного числа формируется следующим образом:
- Старший разряд (знаковый) устанавливается в 1, так как число отрицательное.
- Остальные разряды заполняются двоичным представлением модуля числа.
Модуль числа равен 101. Переведем его в двоичную систему счисления:
101=64+32+4+1=26+25+22+20Двоичная запись числа 101 занимает 7 бит: 11001012.
Так как всего используется 16 бит, добавим ведущие нули до длины 15 бит для мантиссы (без знакового разряда):
000000011001012Теперь соберем полный прямой код числа -101 в 16 битах. Знаковый разряд 1, затем 15 бит значения:
1 000000011001012Посчитаем количество единиц в этом представлении:
- Знаковый разряд: 1 единица.
- Разряды значения (1100101): 1+1+0+0+1+0+1=4 единицы.
Итого в прямом коде: 1+4=5 единиц.
Шаг 2. Представление числа в дополнительном коде
Дополнительный код отрицательного числа можно получить двумя способами. Самый надежный алгоритм для ручного счета:
- Записать модуль числа в двоичном виде в отведенных битах (включая знаковый разряд как часть числа).
- Инвертировать все биты (получить обратный код).
- Прибавить 1 к полученному числу.
Сначала запишем число 101 в 16-битном формате (как положительное):
0000000011001012Инвертируем все биты (обратный код):
1111111100110102Прибавим 1 к младшему разряду:
111111110011010 + 1 ----------------- 111111110011011
Проверим сложение последних разрядов: 0+1=1; 1+0=1; 0+0=0; 1+0=1; 1+0=1; 0+0=0; 0+0=0; 1+0=1... и так далее. Более простой способ проверки: дополнительный код отрицательного числа -x равен 216-x. Но считать единицы удобнее по битам.
Давайте аккуратно посчитаем единицы в результате 1111111100110112.
Разобьем на группы по 4 бита для удобства (справа налево): 1111 (4 ед.) 1111 (4 ед.) 0011 (2 ед.) 0110 -> стоп, давайте выпишем строку целиком и посчитаем вручную, чтобы не ошибиться в группировке.
Число: 111111110011011
- Первые 8 бит слева: 11111111 — здесь 8 единиц.
- Следующие 4 бита: 0011 — здесь 2 единицы.
- Последние 4 бита: 0110? Нет, давайте пересмотрим инверсию и прибавление.
Исходное 101: 000000001100101 Инверсия: 111111110011010 Прибавление 1: 111111110011010+1=111111110011011
Посчитаем единицы в 111111110011011:
- Биты 15-8 (старшие): 11111111 -> 8 единиц.
- Биты 7-4: 0011 -> 2 единицы.
- Биты 3-0: 0110? Нет, последние 4 бита исходной инверсии были 1010. Прибавили 1 -> 1011. В 1011 три единицы.
Давайте проверим последние 4 бита внимательно. Исходные последние 4 бита числа 101 (...0101): 0101. Инверсия: 1010. Прибавление 1: 1010+1=1011. Количество единиц в 1011: 3.
Теперь средние 4 бита (разряды 4-7). Исходные разряды числа 101 (...1100101). Разряды 4-7 соответствуют весам 16,32,64,128. 101<128, значит старший из этой четверки (128) равен 0. 101>64, значит следующий (64) равен 1. 101-64=37. 37>32, значит следующий (32) равен 1. 37-32=5. 5<16, значит последний (16) равен 0. Итак, разряды 7-4 числа 101: 0110. Инверсия: 1001. Прибавления 1 сюда не было (оно произошло в младших разрядах и не вызвало переноса дальше, так как младшие 1010+1=1011 без переноса). Значит, в этих разрядах у нас 1001. Количество единиц: 2.
Старшие разряды (8-15). Число 101 требует только 7 бит. Значит, разряды 7-15 равны 0. Инверсия: все единицы. Переноса из младших разрядов нет. Значит, разряды 8-15 равны 11111111. Количество единиц: 8.
Знаковый разряд (бит 15) входит в эту группу "все единицы".
Суммируем единицы: Старшие 8 бит: 8 единиц. Средние 4 бита: 2 единицы. Младшие 4 бита: 3 единицы. Всего: 8+2+3=13 единиц.
Шаг 3. Проверка результата
Проверим ответ для дополнительного кода через свойство суммы прямого и дополнительного кодов или через формулу количества единиц.
Для отрицательного числа -A в N-битном дополнительном коде количество единиц равно N-1-k+1, где k — количество единиц в модуле A? Не совсем верно для общего случая из-за цепочек переносов.
Давайте просто пересчитаем биты числа 111111110011011.
| Разряды | Биты | Единицы |
|---|---|---|
| 15..8 | 11111111 | 8 |
| 7..4 | 0011 | 2 |
| 3..0 | 1011 | 3 |
Сумма: 8+2+3=13.
Ответ верен.
а) 5
б) 13
В прямом коде единицы считаются как 1 (знак) + количество единиц в двоичной записи модуля числа. Модуль 101 в двоичном виде 1100101 содержит 4 единицы. Итого 5. В дополнительном коде мы инвертировали биты числа 101 (записанного в 16 битах) и прибавили 1. Получилось 111111110011011. Подсчет единиц дал 13.
Как решение?
Двойная оценка: понятность и подробность. Можно выбрать одно или оба.
У вас другое условие?
Загрузите фото — учтём ваши числа и редакцию.
Частые вопросы
Это точный номер 13.8 из моего учебника?
Номер совпадает с учебником «Информатика», Босова Л.Л., Босова А.Ю.. Формулировка — пересказ редакции, не дословная цитата. Если в вашей редакции другие числа — загрузите фото.
Какой ответ в задании 13.8?
Краткий ответ: 1) 5 2) 13.
Как пользоваться этим разбором?
Сначала прочитайте условие и чертёж, затем шаги решения по порядку и сверьте свой ход с кратким ответом внизу.
Какой учебник имеется в виду?
«Информатика», Босова Л.Л., Босова А.Ю.. Проверьте часть, год и автора на обложке. Тема в учебнике: § 13. Представление чисел в компьютере.
Можно ли списать ответ без решения?
Лучше сначала решить самостоятельно, а разбор использовать для проверки хода и поиска ошибки.