4.4.1. Представление чисел
Целые числа точно представляются в памяти компьютера и дают возможность выполнять операции без погрешностей. Целочисленная арифметика позволяет реализовать операции деления нацело с остатком (причем можно в качестве результата получить как частное от деления, так и остаток). Именно целые числа используются при решении многих экономических задач и задач управления (примерами данных, представленных целочисленными величинами, являются количество акций, сотрудников, транспортных средств, деталей, единиц боевой техники и т.п.); целые числа служат для нумерации элементов в различных наборах данных, обозначения даты и времени, они применяются для кодирования текста, изображения и звука, а также для реализации средств криптографической защиты информации (защиты с помощью шифрования), в программах электронной почты и средствах навигации в Internet (для записи адреса) и т.д. Поэтому аппаратурой компьютеров обычно поддерживается несколько форматов представления целочисленных данных и множество операций над ними.
Целые числа в памяти компьютера всегда хранятся в формате с фиксированной точкой, что, безусловно, ограничивает диапазон чисел, с которыми может работать компьютер, и требует учета особенностей организации выполнения арифметических действий в ограниченном числе разрядов.
Рассмотрим подробнее это представление.
Все числа, которые хранятся в памяти компьютера, занимают определенное количество двоичных разрядов. Это количество определяется форматом числа. Обычно для представления целых чисел используются несколько форматов (например, в IBM-совместимых персональных компьютерах поддерживается три формата: байт (8 разрядов), слово (16 разрядов), двойное слово (32 разряда)). Целые числа вписываются в разрядную сетку, соответствующую формату. Для целых чисел разрядная сетка имеет вид
где b i – разряды двоичной записи целого числа (запись числа имеет вид b n–2 b n–3 ... b 1 b 0, разделитель между целой и дробной частью числа зафиксирован после b0, дробной части нет), S – разряд, отведенный для представления знака числа (для положительных чисел знак «+» кодируется цифрой 0, а знак «–» для отрицательных – цифрой 1), n – количество двоичных разрядов в разрядной сетке.
Если двоичная запись числа оказывается короче отведенной для его хранения в памяти компьютера разрядной сетки, то старшие разряды заполняются нулями.
Например, число 1110=10112 в формате байта будет записано как
(старший (знаковый) разряд заштрихован). В формате слова то же число будет выглядеть как
Отрицательные числа для упрощения выполнения операций хранятся в дополнительном коде, который получается путем обращения (инверсии) всех разрядов в двоичной записи числа, вписанной в разрядную сетку, и добавления 1. Например, число –1110 в формате байта в памяти компьютера будет преобразовано и записано следующим образом:
затем выполняется инверсия (получается обратный код):
к обратному коду прибавляется 1:
получается дополнительный код – запись отрицательного числа –1110 в памяти компьютера:
Такая запись чисел ограничивает диапазоны значений, с которыми может работать компьютер. Например, для чисел в формате байта представимы значения от –128 (–27) до 127 (27–1), для чисел в формате слова – от –32 768 (–215) до 32 767 (215–1), а длинные целые числа в формате двойного слова могут принимать значения из диапазона от –2 147 483 648 до 2 147 483 647.
Если по условиям задачи используются только положительные значения, то их можно хранить в формате чисел без знака – старший разряд рассматривается как разряд, содержащий двоичную цифру записи числа, а не знак. При этом диапазон представимых положительных чисел увеличивается. Например, в байт можно записать числа от 0 до 255 (28–1), а в слово – значения от 0 до 65 535 (216–1).
Особенности представления чисел в памяти компьютера могут привести и к ошибкам при обработке данных.
Рассмотрим пример. Предположим, что программа выполняет функции подсчета каких-либо объектов, и для хранения количества этих объектов используется представление данных в формате целого числа со знаком, записанного в байт. Рассмотрим ситуацию, когда количество объектов уже стало равным 127 и увеличивается еще на 1. Результат должен быть равен 128, но сможем ли мы его получить с помощью компьютера, если работаем со знаковыми числами в формате байта?
Целое число 127 в памяти компьютера будет представлено цепочкой нулей и единиц 01111111. При добавлении единицы будет получено число 10000000:
(действия в двоичной системе счисления выполняются так же, как и в десятичной, но используется только две цифры, поэтому если при сложении разрядов получается значение большее 1, происходит перенос в старший разряд). Но старший разряд является знаковым! Поэтому в результате сложения компьютер получит целое число –128, записанное своим дополнительным кодом. И именно это отрицательное число будет затем использовано во всех вычислениях.
Этот пример демонстрирует возможность появления ошибок при выполнении программ вследствие неправильно выбранных форматов для представления данных.
Таким образом, при выполнении программ может возникнуть ситуация, когда полученные результаты не смогут «вписаться» в отведенную для них разрядную сетку, произойдет ее «переполнение».
Разработчики программ должны отслеживать такие ситуации и предотвращать подобные ошибки, а пользователям необходимо четко формулировать требования к условиям эксплуатации программ, их входным данным и результатам. Игнорирование этих требований может привести к серьезным проблемам.
Поэтому при разработке программного обеспечения очень важно знать, с какими диапазонами значений будет работать программа. Это позволит правильно определить форматы представления чисел и предупредить возможные ошибки при обработке данных.
Каждый раз при вводе данных в компьютер происходит преобразование числовых данных, введенных пользователем с клавиатуры в виде строки символов, представляющей десятичную запись числа, во внутреннее двоичное представление числа. При выводе результатов осуществляются обратные преобразования. Эти преобразования требуют времени. Поэтому для систем, в которых вводится и выводится большой объем информации, осуществляется ее поиск, происходит замедление выполнения программ вследствие постоянных переводов информации из одной формы представления в другую. Для представления данных в таких системах (а именно к ним относится большинство программ для решения экономических задач и задач управления) используется еще одна форма представления данных в памяти компьютера – двоично-десятичные данные.
При использовании двоично-десятичной формы представления данных десятичные числа также записываются с помощью двоичных кодов, но в двоичную систему переводится не все число, а каждая его цифра отдельно. Так как используется всего десять десятичных цифр от 0 до 9, а для представления старшей цифры 9 достаточно четырех двоичных цифр (910=10012), то каждая десятичная цифра в записи числа кодируется четырьмя двоичными цифрами в его двоично-десятичном представлении в памяти компьютера. Например, число 105910 представляется в памяти компьютера следующим образом:
Двоично-десятичные данные могут использоваться не только для представления целых чисел, но и для кодирования чисел, имеющих дробную часть.
Знак числа и позиция десятичного разделителя в нем кодируются отдельно. Для двоично-десятичных чисел также существуют различные форматы записи чисел в памяти компьютера. Конкретные форматы определяются его архитектурными особенностями.
При использовании двоично-десятичного представления проще выполняется преобразование данных при вводе/выводе, но усложняются алгоритмы выполнения операций. Поэтому такая форма представления применяется там, где данные не подвергаются сложной обработке, где нет объемных вычислений.
Решение проблем математического моделирования в естественных науках, экономике и технике, работа с системами автоматического проектирования, электронными таблицами невозможны без использования вещественных (действительных) чисел.
Для представления этих чисел разработана специальная форма – данные в памяти компьютера хранятся в форме с плавающей точкой. Такое представление основано на записи числа в экспоненциальном виде M 10 p. При использовании такой формы представления часть разрядов разрядной сетки, в которую помещается число в памяти компьютера, отводится для хранения порядка числа p, а остальные разряды – для хранения мантиссы M:
Поскольку порядок числа и его мантисса хранятся в двоичном коде, перед их определением число переводится в двоичную систему.
Точность вычислений зависит от длины мантиссы, а порядок числа определяет допустимый диапазон представления действительных чисел. Например, в IBM-совместимых персональных компьютерах используются три формата представления данных в форме с плавающей точкой (32 разряда, 64 разряда и 80 разрядов), позволяющие представлять три диапазона положительных вещественных чисел: от 1,510‑45 до 3,41038, от 510324 до 1,710308 и от 1,9104 951 до 1,1104 932. Для представления положительных чисел в знаковый разряд записывается значение 0, а отрицательных чисел – 1. Порядок и мантисса записываются как целые числа.
Такая форма представления чисел усложняет функциональную схему компьютера, так как операции над числами с плавающей точкой значительно сложнее. Для ускорения обработки числовых данных в его состав включаются специальные устройства.
Особенности представления вещественных чисел в памяти компьютера определяют свойства машинных чисел: при переводе дробной части десятичного числа в формат с плавающей точкой происходит его округление до количества разрядов, определяемых длиной мантиссы; ограниченная длина мантиссы приводит к погрешности при выполнении операций («лишние» разряды отсекаются или происходит округление); вещественные числа нельзя сравнивать на равенство, их можно только проверять на принадлежность определенным диапазонам.
- Основы информатики и информационных технологий
- Оглавление
- Глава 8. Сети и сетевые технологии 112
- Глава 9. Ащита информации 129
- Предисловие
- Раздел 1. Введение в информатику
- Глава 1. Информатика и предмет ее исследования
- Глава 2. Понятие информации
- 2.1. Определение и свойства информации
- 2.2. Особенности экономической информации
- Глава 3. Роль информации в управлении
- 3.1. Одноконтурная схема управления экономическими системами
- 3.2. Информация и информационные системы в управлении
- Глава 4. Кодирование и представление информации
- 4.1. Основные определения
- 4.2. Связь между системами счисления
- 4.3. Системы счисления, используемые в эвм
- 4.4. Внутреннее представление данных в памяти компьютера
- 4.4.1. Представление чисел
- 4.4.2. Представление текстовых данных
- 4.4.3. Представление мультимедийной информации
- 4.5. Представление данных во внешней памяти компьютера
- Глава 5. Основы алгоритмизации
- 5.1. Определение и свойства алгоритмов
- 5.2. Основные этапы и методы разработки алгоритмов
- 5.3. Основные способы описания алгоритмов
- Раздел 2. Основы информационных технологий
- Глава 6. Аппаратное обеспечение вычислительных систем
- 6.1. Понятие архитектуры и принципы устройства вычислительных систем
- 6.2. Устройство персонального компьютера
- 6.2.1. Конфигурация персонального компьютера
- 6.2.2. Характеристики процессора
- 6.2.3. Организация памяти персонального компьютера
- 6.2.4. Устройства ввода/вывода
- 6.2.5. Внешние запоминающие устройства
- 6.3. Тенденции совершенствования архитектуры
- Глава 7. Программное обеспечение
- 7.1. Понятие программы
- 7.2. Классификация программного обеспечения
- 7.3. Системное программное обеспечение
- 7.3.1. Операционные системы
- Определение и функции операционных систем
- Классификация операционных систем
- Функция управления процессами
- Управление основными ресурсами
- Управление данными. Файловая система
- Управление внешними устройствами и организация ввода/вывода
- Интерфейс с пользователем
- 7.3.2. Операционные оболочки
- 7.3.3. Средства контроля и диагностики
- 7.3.4. Системы программирования
- 7.4. Системы управления базами данных
- 7.4.1. Основные понятия
- 7.4.2. Реляционный подход к управлению бд
- «Магазины»
- «Владельцы»
- «Магазины-Владельцы»
- «Поставки»
- «Товар»
- «Поставки»
- 7.4.3. Назначение и классификация субд
- 7.4.4. Средства описания и манипулирования данными в субд
- 7.4.5. Объектно-ориентированные субд
- 7.4.6. Категории пользователей
- 7.5. Прикладное программное обеспечение
- Глава 8. Сети и сетевые технологии
- 8.1. Определение, назначение и классификация сетей
- 8.2. Способы передачи информации, коммутация и маршрутизация в сетях
- 8.3. Организация взаимодействия в сетях
- 8.4. Топология сетей и методы доступа
- 8.5. Глобальная сеть Internet
- 8.5.1. Идентификация компьютеров в сети
- 8.5.2. Услуги Internet
- 8.5.3. Всемирная паутина World Wide Web
- 8.5.4. Электронная почта
- 8.5.5. Навигационные средства для Internet
- 8.6. Корпоративные сети на основе технологий Internet
- Глава 9. Защита информации
- 9.1. Информация как продукт
- 9.2. Концепция защищенной вс
- 9.2.1. Основные понятия
- 9.2.2. Этапы разработки системы защиты
- 9.2.3. Общая классификация вторжений и характеристика угроз
- 9.2.4. Система защиты
- 9.2.5. Защита объектов на регистрационном уровне и контроль доступа
- 9.3. Криптографические средства защиты информации
- 9.3.1. Основные понятия
- 9.3.2. Криптографические протоколы
- 9.3.3. Электронно-цифровые подписи и открытые сделки
- 9.3.4. Использование криптографической защиты в программных продуктах
- 9.3.5. Условия и ограничения использования криптографической защиты
- 9.4. Программные закладки и вирусы
- 9.5. Хакеры и проблема безопасности информационных систем
- 9.6. Защита информации от потери в результате сбоев
- 9.7. Правовая защита информации и программного обеспечения
- Глава 10. Интегрированные пакеты прикладных программ офисного назначения
- 10.1. Общая характеристика офисных пакетов
- 10.2. Основы редактирования текстовых документов
- 10.3. Использование электронных таблиц
- 10.4. Системы электронного перевода
- 10.5. Системы оптического распознавания текстов
- 10.6. Интеграция систем распознавания текстов, компьютерного перевода и офисных пакетов
- 10.7. Электронные презентации
- 10.8. Графические редакторы
- 10.9. Правовые системы
- 10.10. Учетные системы
- Глава 11. Системы аналитической обработки данных и искусственного интеллекта
- 11.1. Средства анализа данных математических пакетов
- 11.2. Введение в системы искусственного интеллекта
- 11.2.1. Основы экспертных систем
- 11.2.2. Представление и использование нечетких знаний
- 11.2.3. Нейронные системы и сети
- 11.2.4. Системы извлечения знаний
- 11.2.5. Инструментальные средства создания интеллектуальных приложений
- Раздел 3. Современные информационные технологии в экономике и управлении
- Глава 12. Основные понятия
- Глава 13. Эволюция информационных технологий
- Глава 14. Классификация информационных систем
- Глава 15. Корпоративные системы
- 15.1. Типовые технические решения
- 15.2. Корпоративные информационные порталы
- 15.3. Серверы BizTalk как основа средств интеграции информационных систем
- Глава 16. Методы и средства разработки информационных систем
- 16.1. Жизненный цикл информационных систем
- 16.1.1. Процессы жизненного цикла ис
- 16.1.2. Модели жизненного цикла
- 16.2. Методы и средства структурного анализа
- 16.3. Объектно-ориентированный подход к разработке информационных систем
- 16.4. Компонентно-ориентированные средства разработки ис
- Глава 17. Стандарты создания информационных систем
- 17.1. Стандарты кодирования и представления информации
- 17.1.1. Единая система классификации и кодирования технико-экономической и социальной информации
- 17.1.2. Нормативная база системы классификации и кодирования
- 17.2. Унификация и стандартизация документов
- 17.3. Поддержка стандартов управления бизнес-системами
- 17.3.1. Информационные технологии и реинжиниринг
- 17.3.2 Описание стандарта mrp II
- Стратегическое планирование
- Бизнес-планирование
- Планирование объемов продаж и производства
- Планирование ресурсов
- Главный план-график производства
- Общее планирование мощностей
- Mrp, или планирование потребностей в материалах
- Crp, или планирование потребностей в мощностях
- Drp, или планирование потребностей в распределении
- Глава 18. Основы электронной коммерции
- 18.1. Этапы развития электронной коммерции
- 18.2. Секторы рынка электронной коммерции
- 18.3. Инструментарий электронной коммерции
- 18.4. Электронные платежные системы
- Глава 19. Введение в мобильный бизнес
- 19.1. Возможности мобильного бизнеса
- 19.2. Обзор существующих технологий мобильного бизнеса
- 19.2.1. Терминальные устройства
- 19.2.2. Современные технологии построения цифровых каналов связи
- 19.2.3. Стандарты мобильного Internet
- 19.2.4. Проблемы мобильного Internet
- 19.2.5. Операционные системы для мобильных устройств
- 19.2.6. Средства разработки приложений мобильного бизнеса
- Библиографический список