На Горох
Информатика, 8 класс

4.1. Кодирование числовой информации

"Информатика (изд. "БИНОМ. Лаборатория знаний")", Угринович Н.Д.

Объяснение темы В оглавлении: 4.1. Кодирование числовой информации

Кратко о теме

Компьютер хранит числа не в привычной десятичной записи, а как последовательности нулей и единиц. Такой способ называется двоичным кодированием: он подходит электронным элементам с двумя устойчивыми состояниями. Чтобы понять, какие числа помещаются в ячейку памяти, нужно учитывать число разрядов и способ кодирования. Целые и вещественные числа представляют по-разному, поэтому отличаются и их диапазон, и точность.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Позиционная система счисления — система, в которой значение цифры зависит от её места в записи числа. Основание системы показывает, сколько разных цифр в ней используется: в десятичной их десять, а в двоичной — две. Каждый следующий разряд справа налево вдвое важнее предыдущего в двоичной системе. Это помогает понять, как из отдельных цифр складывается значение числа.

Двоичное кодирование числа — представление числовой информации последовательностью нулей и единиц. Каждая такая цифра называется битом и соответствует одному из двух возможных состояний электронного элемента. Двоичное кодирование нужно, чтобы компьютер мог хранить числа и выполнять над ними действия. Обычную десятичную запись для этого переводят в подходящий двоичный вид.

Дополнительный код — способ представления отрицательных целых чисел, при котором их код можно использовать при сложении и вычитании. Чтобы получить его, положительное число записывают с нужным количеством разрядов, инвертируют биты и прибавляют единицу. Такой способ позволяет компьютеру выполнять арифметические действия по общим правилам двоичного сложения. Знак числа при этом не требует отдельного алгоритма для каждого действия.

Представление числа с плавающей запятой — запись вещественного числа через мантиссу и порядок. Мантисса содержит значащие цифры, а порядок указывает, насколько нужно сдвинуть запятую. Например, число 1250 можно записать как 1,25 × 10³. Такой формат позволяет хранить очень большие и очень маленькие числа, но количество значащих цифр ограничено.

Как это устроено

Электронным элементам компьютера надёжнее различать два устойчивых состояния, чем множество разных уровней сигнала. Например, состояние можно определить как «сигнал есть» или «сигнала нет» и обозначить 1 и 0. Поэтому двоичная система естественно подходит для хранения информации в памяти и её передачи между устройствами. Из таких простых состояний компьютер строит коды чисел и выполняет над ними операции.

Чтобы перевести целое десятичное число в двоичное, его делят на 2, потому что основание двоичной системы равно двум. Остаток каждого деления — 0 или 1 — становится очередным двоичным разрядом. Первым получают младший разряд, то есть цифру справа, поэтому остатки записывают в обратном порядке. Деление продолжают, пока частное не станет нулём.

В ячейке памяти можно разместить лишь конечное число битов. Если разрядов n, существует 2ⁿ различных последовательностей, поэтому число представимых значений тоже ограничено. Часть кодов может отводиться для отрицательных чисел, и конкретный диапазон зависит от выбранного способа представления. Добавление разрядов увеличивает количество доступных кодов, но не меняет основание системы: оно остаётся равным двум.

Дополнительный код помогает представить отрицательное целое число так, чтобы сложение выполнялось по правилам двоичной арифметики. Сначала выбирают одинаковую длину кода и записывают модуль числа, затем меняют каждый бит на противоположный и прибавляют единицу. Например, для −5 в восьми разрядах получают код 11111011. Фиксированное число разрядов важно: при другой длине запись и возможный диапазон будут другими.

У вещественного числа может быть много цифр до или после запятой, поэтому хранить его целиком неудобно. Мантисса записывает значащую часть, а порядок позволяет перемещать запятую и задавать масштаб числа. При ограниченной длине мантиссы часть цифр приходится отбросить или округлить, поэтому значение в памяти может быть приближённым. Длина порядка влияет на доступный диапазон, а длина мантиссы — прежде всего на точность.

Представление чисел в памяти компьютера

ХарактеристикаЦелые числаВещественные числа
Способ представленияДвоичный код фиксированной длиныДвоичная запись с плавающей запятой
Какие части записи используютсяРазряды числаМантисса и порядок
Как представляют отрицательные значенияОбычно дополнительным кодомЗнаком, мантиссой и порядком
От чего зависит диапазон значенийОт числа разрядов и способа кодированияОт числа разрядов, отведённых под порядок
От чего зависит точностьОт шага между целыми значениями; дробные значения не представляютсяОт числа разрядов мантиссы

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

Разбор задач

Перевести десятичное число 13 в двоичную систему счисления

Нужно найти двоичную запись числа 13. Для этого последовательно делим его на 2 и сохраняем остаток каждого деления. Остатки будем читать с конца, потому что первые из них относятся к младшим разрядам.

  1. Делим 13 на 2: частное 6, остаток 1. Этот остаток станет последней цифрой справа.
  2. Делим 6 на 2: частное 3, остаток 0; затем 3 на 2: частное 1, остаток 1.
  3. Делим 1 на 2: частное 0, остаток 1. Деление закончено, поскольку частное равно нулю.
  4. Читаем остатки снизу вверх: 1, 1, 0, 1. Проверяем: 1101₂ = 1 × 8 + 1 × 4 + 0 × 2 + 1 = 13.

Ответ: 13₁₀ = 1101₂. Проверка обратным переводом подтверждает результат, потому что разряды двоичного числа соответствуют степеням двойки. Такая проверка помогает заметить ошибку в порядке остатков.

Записать число −5 в дополнительном коде для восьмиразрядной ячейки

В условии задан отрицательный знак и длина ячейки — восемь разрядов. Сначала кодируем модуль числа, то есть 5, с тем же количеством битов. Затем инвертируем все биты и прибавляем единицу; пропуск любого из этих шагов даст другой код.

  1. Записываем 5 в восьми разрядах: 00000101.
  2. Инвертируем все биты: 11111010. Нули заменяются единицами, а единицы — нулями.
  3. Прибавляем единицу: 11111010 + 1 = 11111011. Переносы выполняются по обычным правилам двоичного сложения.

Ответ: дополнительный код числа −5 — 11111011. Проверить знак можно по старшему разряду: для отрицательного числа в таком формате он равен 1. При этом результат зависит от указанной длины ячейки, поэтому её нельзя менять по ходу решения.

Представить число 13,25 в двоичном виде и записать с плавающей запятой

Десятичное число состоит из целой части 13 и дробной части 0,25. Целую часть переводим делением на 2, а дробную — умножением на 2 с записью целых частей результатов. Затем объединяем части и переносим запятую, чтобы получить запись с мантиссой и порядком.

  1. Целая часть переводится так: 13₁₀ = 1101₂.
  2. Для дробной части умножаем 0,25 на 2 и получаем 0,5; записываем целую часть 0. Умножаем 0,5 на 2 и получаем 1,0; записываем 1, дробная часть стала нулевой.
  3. Читаем полученные цифры дробной части по порядку: 0,25₁₀ = 0,01₂. Объединяем части: 13,25₁₀ = 1101,01₂.
  4. Переносим запятую влево, чтобы перед ней осталась одна значащая цифра: 1101,01₂ = 1,10101₂ × 2³. Мантисса здесь 1,10101₂, порядок равен 3.

Ответ: 13,25₁₀ = 1101,01₂, или 1,10101₂ × 2³ в нормализованной записи с плавающей запятой. Проверка дробной части: 0,01₂ = 1/4 = 0,25. В реальной ячейке мантисса и порядок занимают ограниченное число разрядов, поэтому не каждое число удаётся сохранить точно.

Типичные ошибки

Остатки при переводе делением на 2 иногда читают в том же порядке, в каком они получены. Так происходит потому, что остатки записываются по мере вычисления, хотя первый из них относится к разряду справа. Читай список снизу вверх и проверь результат обратным переводом в десятичную систему.

Увеличение числа разрядов иногда принимают за смену основания системы счисления. Разрядность показывает длину кода, а основание определяет набор цифр и правила разрядов; в двоичной системе оно по-прежнему равно 2. Для самопроверки посчитай, какими цифрами записано число и какое основание задано.

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

Вещественные числа нередко считают точными сразу после сохранения в памяти. На деле ограниченная длина мантиссы может заставить компьютер округлить число, особенно если его двоичная дробная запись бесконечна. Проверяй, совпадает ли записанное значение с исходным и может ли округление повлиять на результат вычислений.

Связь с другими темами

Перед изучением кодирования чисел нужно знать, что такое разряды и основание позиционной системы, а также уметь переводить числа между системами счисления. Эти навыки позволяют самостоятельно читать двоичные коды и проверять переводы. Двоичное кодирование понадобится при изучении логических операций, устройства памяти и арифметики компьютера. Представление вещественных чисел пригодится при программировании вычислений и разборе погрешностей: оно объясняет, почему результат иногда отличается от ожидаемого.

Что запомнить

  • В компьютере числа кодируются последовательностями нулей и единиц.
  • В двоичной системе основание равно 2.
  • Число разрядов ограничивает диапазон представимых значений.
  • Отрицательные целые числа можно кодировать дополнительным кодом.
  • Вещественное число представляют мантиссой и порядком.
  • Ограниченная разрядность может приводить к округлению.

Частые вопросы по теме

Почему компьютер использует двоичную систему счисления?

Электронным элементам проще надёжно различать два устойчивых состояния, например наличие и отсутствие сигнала. Их обозначают цифрами 1 и 0, поэтому данные удобно хранить и обрабатывать в двоичном виде.

Как перевести десятичное целое число в двоичное?

Число последовательно делят на 2 и записывают остатки от деления. Когда частное станет равным нулю, остатки читают в обратном порядке — от последнего к первому.

Почему нельзя записать любое целое число в ячейке памяти?

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

Как получить дополнительный код отрицательного числа?

Сначала записывают соответствующее положительное число в двоичном виде с нужным количеством разрядов. Затем инвертируют все разряды, то есть меняют 0 на 1 и 1 на 0, и прибавляют единицу.

Почему при вычислениях с вещественными числами появляется погрешность?

Для записи вещественного числа отводится ограниченное количество разрядов мантиссы и порядка. Некоторые числа нельзя точно представить в таком формате, поэтому компьютер округляет их, а вычисления могут накапливать погрешность.

Спросить по теме параграфа

4.1. Кодирование числовой информации

Учебник

Оглавление →
Предмет
Информатика
Класс
8 класс
Учебник
"Информатика (изд. "БИНОМ. Лаборатория знаний")", Угринович Н.Д.