"Информатика (базовый уровень) (в 2 частях)", Под ред. Макаровой Н.В.
Компьютер представляет числа последовательностями двоичных разрядов — нулей и единиц. Такое кодирование подходит электронным элементам, которые надёжно различают два устойчивых состояния. Значение числа зависит от весов его разрядов, а доступное количество разрядов ограничивает диапазон записи. Для целых и дробных чисел используют разные способы хранения: с фиксированной или плавающей запятой. Их особенности объясняют, почему в вычислениях возможны переполнение и округление.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Позиционная система счисления — способ записи чисел, в котором значение цифры определяется её позицией и основанием системы. Например, в десятичной записи 222 цифры одинаковы, но их вклады равны 200, 20 и 2. Это правило позволяет читать и вычислять числа, записанные в разных системах.
Разряд — позиция цифры в записи числа, соответствующая определённой степени основания системы счисления. В двоичной записи справа налево находятся разряды с весами 2⁰, 2¹, 2² и далее. Разряды помогают определить вклад каждой цифры и понять, сколько места число занимает в памяти.
Фиксированная запятая — способ представления чисел, при котором положение разделителя целой и дробной частей заранее задано. Часть разрядов отводят под целую часть, остальные — под дробную. Такой способ удобен, когда заранее известен масштаб величин и важно одинаково обрабатывать их дробную часть.
Плавающая запятая — способ представления числа в виде мантиссы и порядка, позволяющий изменять положение разделителя. Мантисса хранит значащие цифры, а порядок задаёт масштаб числа, например умножение на степень основания. Благодаря этому можно записывать очень большие и очень малые величины, хотя конечная разрядность ограничивает точность.
Компьютер использует двоичную систему не потому, что в ней удобнее считать человеку, а потому, что её проще надёжно реализовать в электронных схемах. Элемент может находиться в одном из двух устойчивых состояний: например, напряжение ниже или выше заданного порога. Эти состояния кодируют нулём и единицей; различать два уровня надёжнее, чем множество уровней, чувствительных к помехам. Из последовательностей таких разрядов компьютер строит числа и выполняет над ними операции.
В позиционной записи вес цифры задаётся степенью основания, поэтому число можно представить суммой вкладов всех цифр. В десятичной системе основание равно 10, а в двоичной — 2: например, двоичная запись 1011 означает 1·2³ + 0·2² + 1·2¹ + 1·2⁰. Нули тоже важны: они показывают, что соответствующий вес в сумме не участвует. Этот принцип работает и для дробной части, где используются отрицательные степени основания.
Чтобы перевести целое число из десятичной системы в двоичную, его делят на 2 и сохраняют остатки: каждый остаток показывает очередную цифру с конца. Поэтому после завершения деления остатки читают в обратном порядке. Для перевода двоичного числа в десятичное складывают веса разрядов, на которых стоят единицы. Дробную часть разбирают отдельно: после запятой идут веса 2⁻¹, 2⁻², 2⁻³ и так далее; десятичную дробь можно переводить последовательным умножением на 2.
Число в памяти занимает конечное количество разрядов — образует разрядную сетку. Если выделено n разрядов для беззнакового целого, возможны 2ⁿ комбинаций, от 0 до 2ⁿ − 1. Дополнительный разряд увеличивает число вариантов вдвое, но неограниченными значения не становятся. Когда результат не помещается в отведённую сетку, возникает переполнение: сохранённое значение может оказаться неверным или операция будет обработана особым образом.
При фиксированной запятой граница между целой и дробной частями всегда стоит на одном месте. Это делает шаг между соседними представимыми числами постоянным, но диапазон и точность приходится распределять между целыми и дробными разрядами. Плавающая запятая хранит мантиссу и порядок: порядок сдвигает запятую, позволяя покрыть широкий диапазон. Однако число значащих цифр мантиссы ограничено, поэтому соседние представимые значения не везде одинаково близки, а некоторые дроби округляются.
| Характеристика | Целые числа | Фиксированная запятая | Плавающая запятая |
|---|---|---|---|
| Структура записи | Разряды целого числа; для знаковых чисел учитывается знак | Разряды целой и дробной частей с заранее заданной границей | Мантисса и порядок, задающий масштаб |
| Положение запятой | После последнего целого разряда | Заранее фиксировано | Определяется порядком и может изменяться |
| Диапазон представимых значений | Ограничен числом разрядов и способом кодирования знака | Ограничен разрядами целой части и выбранным масштабом | Широкий; зависит от диапазона порядка |
| Точность представления | Все целые в диапазоне представимы точно | Шаг представления постоянен при выбранном масштабе | Ограничена числом значащих разрядов мантиссы |
| Основная область применения | Счёт, индексы, значения без дробной части | Величины с заранее известным диапазоном и фиксированной дробной частью | Научные расчёты и величины разного масштаба |
| Причина возникновения ошибок округления | Округления нет для целых в диапазоне; выход за него вызывает переполнение | Дробь может не совпасть с доступным шагом, а результат — выйти за диапазон | Бесконечная двоичная дробь и ограниченная длина мантиссы |
Сравнивайте сначала положение запятой и структуру записи: именно они определяют, как кодируется масштаб числа. Затем смотрите на диапазон и точность — эти свойства связаны с распределением разрядов. Таблица описывает общие принципы; конкретные границы зависят от формата и числа выделенных битов.
Нужно получить двоичную запись и проверить её значение. При делении на 2 остаток всегда равен 0 или 1, то есть сразу даёт очередной двоичный разряд. Поскольку первый остаток относится к самому правому разряду, последовательность нужно записать в обратном порядке.
Ответ: 45₁₀ = 101101₂. Обратная проверка подтверждает перевод, потому что сумма весов единичных разрядов снова равна 45.
Разделим запись на целую и дробную части, чтобы не перепутать веса по сторонам запятой. Слева от запятой степени двойки начинаются с 2⁰ и растут вправо налево. Справа степени отрицательные и идут по порядку: 2⁻¹, 2⁻², 2⁻³.
Ответ: 1011,101₂ = 11,625₁₀. Нулевой разряд дробной части не даёт вклада, но сохраняет правильные веса следующих цифр.
В беззнаковой сетке все разряды используются для записи величины, а знак отдельно не хранится. Каждый из восьми разрядов может быть нулём или единицей, поэтому всего существует 2⁸ комбинаций. Минимум получается из восьми нулей, максимум — когда все разряды равны единице.
Ответ: можно представить целые числа от 0 до 255 включительно. Значение за пределами этого диапазона нельзя корректно записать в тех же восьми беззнаковых разрядах.
При переводе делением остатки записывают в порядке получения. Так возникает обратная запись числа: первый остаток соответствует младшему разряду, а не старшему. Проверьте результат обратным переводом — сумма весов единичных разрядов должна дать исходное число.
Основание системы путают с количеством разрядов, потому что оба понятия связаны с записью числа. Основание задаёт веса позиций, а разрядность определяет, сколько позиций доступно. Чтобы проверить себя, отдельно назовите основание, например 2, и число разрядов, например 8.
Предполагают, что десятичная дробь всегда точно записывается в двоичном виде. Но некоторые дроби дают бесконечную последовательность двоичных цифр, и память хранит только её приближение. Проверяйте, можно ли разложить дробь в конечную сумму отрицательных степеней двойки; если нет, понадобится округление.
При вычислениях забывают, что разрядная сетка ограничена, поэтому ожидают точного результата без переполнения и потери младших разрядов. Такое происходит из-за привычки считать числа неограниченными. Сравните результат с допустимым диапазоном и учитывайте, что дробное значение может округлиться даже без выхода за пределы.
Для понимания темы пригодятся степени чисел, позиционная запись, алгоритмы перевода между системами счисления и действия с двоичными числами. Эти знания объясняют, как из битов получается числовое значение. Представление чисел связано с устройством памяти, кодированием данных и форматами хранения. Оно также помогает понять переполнение и погрешности округления в программах и электронных таблицах.
Компьютер хранит числовую информацию в двоичном виде.
Вес разряда позиционной записи определяется степенью основания системы счисления.
Количество разрядов ограничивает множество чисел, которые можно представить.
Фиксированная запятая удобна для чисел с заранее известным диапазоном и положением дробной части.
Плавающая запятая позволяет хранить числа очень разного масштаба.
Ограниченная разрядность может приводить к переполнению и потере точности.
Двоичное представление десятичных дробей не всегда является конечным.
Почему компьютер не хранит числа непосредственно в десятичном виде?
Электронным схемам проще и надёжнее различать два состояния, например наличие или отсутствие сигнала. Их кодируют цифрами 1 и 0, поэтому числа хранятся в двоичном виде. Десятичную запись компьютер может показывать пользователю, преобразуя внутреннее представление.
Как быстро перевести целое десятичное число в двоичную систему?
Нужно последовательно делить число на 2 и записывать остатки. Частное снова делят на 2, пока оно не станет нулём, а затем читают остатки снизу вверх. Проверить результат можно, сложив степени двойки, соответствующие единицам записи.
Зачем нужны восьмеричная и шестнадцатеричная системы счисления?
Длинную двоичную запись в них короче и удобнее читать. Одна восьмеричная цифра соответствует трём двоичным разрядам, а одна шестнадцатеричная — четырём. Эти системы применяют, например, при записи машинных кодов и адресов памяти.
Почему при хранении дробных чисел возникают ошибки округления?
Некоторые десятичные дроби в двоичной системе имеют бесконечную запись, поэтому память сохраняет лишь её конечную часть. При округлении младшие разряды отбрасываются или изменяются, и значение немного отличается от исходного. Поэтому результат вычислений с дробями может быть приближённым.
Чем запись с фиксированной запятой отличается от записи с плавающей запятой?
При фиксированной запятой место разделителя целой и дробной частей заранее определено, поэтому удобно хранить числа известного масштаба. При плавающей запятой число кодируется мантиссой и порядком, который задаёт положение запятой. Это позволяет охватить широкий диапазон величин, но точность зависит от числа доступных разрядов.
1.5. Представление числовой информации в компьютере