"Информатика и ИКТ (изд. "ДРОФА")", Быкадоров Ю.А.
Компьютер хранит числа не в привычной десятичной записи, а как последовательности нулей и единиц. Целые числа кодируются разрядами, значение которых связано со степенями двойки, а для вещественных отдельно записываются значащая часть и порядок. Число доступных разрядов ограничивает диапазон и точность: слишком большие значения не помещаются, а дроби часто сохраняются приближённо.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Двоичное представление числа — запись числа с помощью нулей и единиц, которую компьютер хранит и обрабатывает. Каждый разряд имеет вес, равный степени двойки, поэтому одинаковая последовательность цифр в разных системах счисления означает разные числа. Это нужно, чтобы переводить привычные человеку значения в форму, удобную для электронных схем.
Разрядная сетка — последовательность двоичных разрядов, выделенная для хранения числа. Её длина заранее ограничена, поэтому она определяет, сколько разных значений можно закодировать и каков будет их диапазон. Например, 8 бит позволяют записать 256 различных комбинаций.
Целое число — число без дробной части. При хранении со знаком часть разрядов или особый способ кодирования связываются с положительным либо отрицательным значением. Это понятие нужно, чтобы отличать обычные счётные значения от чисел, которым требуется дробная точность.
Вещественное число — число, которое может иметь дробную часть. Компьютер обычно хранит его приближённо, выделяя разряды для мантиссы, то есть значащей части, и порядка, определяющего масштаб числа. Такое представление позволяет работать и с очень большими, и с очень малыми значениями.
Компьютер использует биты, потому что электронному устройству легче надёжно различать два состояния, например наличие и отсутствие электрического сигнала. Каждая комбинация нулей и единиц сама по себе является только кодом. Её смысл появляется после выбора системы счисления и правил, по которым разряды связываются с числом.
Целое десятичное число переводят в двоичное разложением по степеням двойки. Разряд справа имеет вес 2⁰, следующий — 2¹, затем 2² и так далее; в каждом разряде ставят 1, если соответствующая степень входит в сумму, и 0, если не входит. Например, 13 = 8 + 4 + 1 = 2³ + 2² + 2⁰, поэтому получается 1101₂.
Положительное и отрицательное целые числа компьютер должен различать по одному и тому же набору битов. Для этого применяют кодирование со знаком; один распространённый вариант — дополнительный код, в котором отрицательные значения получают специальным преобразованием битов. Правило кодирования влияет на диапазон: при 8 битах без знака доступны числа 0…255, а при знаковом представлении обычно −128…127.
Вещественное число удобно разделять на значащую часть и порядок, потому что так один формат может описывать разные масштабы. Мантисса хранит основные цифры числа, а порядок показывает, на какую степень основания нужно умножить эту часть. Например, запись 6,25·10³ содержит значащую часть 6,25 и порядок 3; в компьютере аналогичный принцип применяется в двоичной форме.
Количество разрядов в мантиссе определяет, сколько значащих цифр удастся сохранить, а количество разрядов порядка — насколько большим или малым может быть число. Если точная запись не помещается, ближайшее значение округляется. Если же само число выходит за пределы порядка или целой сетки, возникает нехватка диапазона и возможна ошибка переполнения.
| Свойство | Целое число | Вещественное число |
|---|---|---|
| Какие числа представляются | Числа без дробной части | Числа с целой и, возможно, дробной частью |
| Основные части записи | Разряды значения и, при необходимости, знак | Мантисса и порядок, а также знак |
| Как учитывается знак | Специальным знаковым кодированием | Отдельным разрядом знака |
| Точность хранения | Все значения в допустимом диапазоне обычно точны | Некоторые значения округляются |
| Ограничения разрядной сетки | Ограничены минимальное и максимальное значения | Ограничены и диапазон, и число значащих цифр |
Сначала определите, нужен ли числу знак и дробная часть. Затем по строке об ограничениях выясните, может ли возникнуть переполнение или округление. Таблица помогает не путать широкий диапазон вещественного формата с высокой точностью.
Нужно подобрать степени двойки, сумма которых равна 13. Берём самые большие подходящие степени и отмечаем использованные разряды. После этого читаем коэффициенты при степенях от большей к меньшей.
Получаем 13 = 1·2³ + 1·2² + 0·2¹ + 1·2⁰. Ответ: 13₁₀ = 1101₂.
Пусть требуется сохранить число 200, а способ кодирования заранее не указан. Одних восьми битов недостаточно для вывода: диапазон зависит от того, используется ли знак. Поэтому сначала устанавливаем формат, а затем сравниваем число с его границами.
Ответ зависит от кодирования: без знака 200 помещается, со знаком — нет. Проверять нужно не только количество битов, но и назначение каждого разряда.
Нужно выяснить, почему после сохранения компьютер может получить значение, близкое к 0,1, но не равное ему точно. В десятичной системе дробь имеет короткую запись, однако компьютер работает с двоичными разрядами. Поэтому следует проверить, конечна ли её двоичная запись.
Ответ: 0,1 может храниться приближённо, потому что его двоичная запись не заканчивается в пределах конечного формата. При вычислениях маленькая погрешность иногда накапливается и становится заметной.
Ошибка: считать двоичную запись десятичной записью с заменой цифр. Так делают, потому что внешне меняется только набор символов, но на самом деле меняется основание системы и вес каждого разряда. Проверка: разложите запись по степеням двойки и пересчитайте результат.
Ошибка: забывать о конечной длине разрядной сетки. Ученик может думать, что любое целое число просто дополняется новыми нулями, хотя компьютер выделяет фиксированное место. Проверка: найдите минимальное и максимальное значения для данного количества битов и выбранного знакового формата.
Ошибка: полагать, что вещественное число всегда хранится точно. Причина — привычная десятичная запись выглядит короткой, но её двоичный вариант может быть бесконечным. Проверка: спросите, заканчивается ли двоичная дробь и хватает ли разрядов мантиссы.
Ошибка: путать недостаток диапазона с недостатком точности. В первом случае число слишком велико или мало для формата, а во втором оно помещается, но округляется. Проверка: отдельно сравните величину с границами диапазона и отдельно оцените число сохраняемых значащих цифр.
До изучения темы нужны знания о разрядах числа, позиционной записи и переводе между десятичной и двоичной системами. Без этого трудно понять, почему один и тот же бит имеет разный вес в разных позициях. Эти навыки позволяют самостоятельно проверять двоичные коды.
Представление чисел связано с объёмом памяти: чем больше разрядов выделено, тем больше значений можно закодировать. Оно также используется при изучении кодирования данных и ошибок округления. Размер формата напрямую влияет на возможности вычислений.
Понимание двоичного хранения объясняет, почему результаты операций с дробями иногда отличаются от ожидаемых. Ошибка появляется не из-за случайного сбоя, а из-за конечной точности представления. Поэтому при вычислениях важно учитывать формат чисел.
Почему компьютер использует нули и единицы для записи чисел?
Электронным устройствам проще надёжно различать два состояния: например, наличие и отсутствие сигнала. Поэтому информация кодируется битами, каждый из которых равен 0 или 1, а последовательности битов образуют числа и другие данные.
Как перевести целое десятичное число в двоичную запись?
Число раскладывают по степеням двойки. Например, 13 = 8 + 4 + 1 = 2³ + 2² + 2⁰, поэтому его двоичная запись — 1101.
Как компьютер хранит отрицательные числа?
Для знака выделяется специальный способ кодирования разрядов. В современных компьютерах обычно используют дополнительный код: при фиксированной длине сетки он позволяет выполнять действия со знаками теми же двоичными схемами.
Почему дробь 0,1 может представляться в компьютере неточно?
В двоичной системе дробь 0,1 обычно имеет бесконечную запись. Поскольку компьютер располагает конечным числом разрядов, запись обрезается и округляется, поэтому сохраняется близкое значение.
Что происходит, если число не помещается в отведённое количество разрядов?
Если не хватает диапазона, возникает переполнение: результат может стать неверным или программа сообщит об ошибке. Если число помещается по величине, но для дробной части не хватает разрядов, происходит округление и теряется точность.
§ 34. Представление чисел в компьютере