Представление информации в ЭВМ - Представление и хранение информациии в ЭВМ

В большинстве ЭВМ информация представляется в двоичном виде (Существуют так же двоично-десятичные и троичные ЭВМ). Это обусловлено, в основном, техническими особенностями - простой реализации электронного устройства с двумя (а не с десятью) устойчивыми состояниями: есть сигнал - нет сигнала. Эти два состояния обозначаются символами 0 и 1. Каждый двоичный символ несет 1 бит информации.

Любая информация в ЭВМ представляется последовательностью двоичных символов. Каждому символу внешнего алфавита (т. е. алфавита пользователя). каждой команде или элементу данных сопоставляется своя последовательность символов. Способ кодирования для нас сейчас не имеет значения, тем более длина кода.

С помощью последовательности из 4-х нулей и единиц можно закодировать 24=16 символов. Увеличив длину последовательности до 8 символов можно получить 28=256. Этого вполне достаточно для кодирования символов внешнего алфавита (цифры, строчные и прописные буквы, специальные знаки и т. д.)

Поэтому размер ячейки в ЭВМ у современных машин равен восьми двоичным символам (разрядам). Единица информации, содержащая 8 двоичных символов называется байтом. Т. е. 1 байт = 8 бит. Это наименьшая адресуемая часть памяти машины. Однако многие данные и команды требуют больше места (в командах кроме кода операции нужны и адреса ячеек). Поэтому выделяют машинное слово, которое на разных ЭВМ может состоять из двух или четырех байт.

Кодирование текстовых данных:

Каждый символ занимает 1 байт. Для кодирования могут использоваться различные стандарты. На IBM-совместимых ЭВМ - это ASCII (American Standart Code for Information Interchange - американский стандартный код для обмена информацией), на наших - КОИ-7, КОИ-8 (Коды для обмена информацией, 7 и 8 битные).

ASCII - 7-разрядный код, т. е. стандарт задает только 128 символов. Восьмой бит используется для расширения таблицы (есть много разных вариантов), куда включают символы Кириллицы, псевдографику, математические символы и прочее.

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

Пример: цифре 5 соответствует латинское A соответствует

Дать Алгоритмы перевода 10 -> 2 и т. д.

В 16-ричной системе счисления 16 цифр. От 0 до 9 берутся из десятичной, остальные обозначаются латинскими буквами A(10), B(11), C(12), D(13), E(14), F(15). Так что AC16 = (10)*16+12=17210

Кодирование целых чисел: Кодировать числа можно "посимвольно", но это не рационально (1 символ = 1 байт!). Для цифры достаточно 4 бит:

0 <=> 0000, 1 <=> 0001, 2 <=> 0010,..., 9 <=> 1001. (Так называемое двоично-десятичное кодирование). Такое представление применяется в ряде случаев при обработке экономической информации (в языке КОБОЛ в частности). - Это кодирование не эффективно по памяти, поэтому в большинстве случаев используют двоичное кодирование.

Использование двоичной системы требует перевода вводимых чисел из 10-ной в двоичную при вводе и из двоичной в десятичную при выводе данных.

Это снижает эффективность, если необходимо вводить и выводить большие массивы информации при небольшом времени их обработки (как в экономических задачах).

Для представления дробных чисел существуют два варианта - с фиксированной и плавающей запятой.

Для целых чисел используется первый вариант (точка фиксирована после целой части), для вещественных - второй вариант.

Фиксированная запятая.

Максимальная величина целого числа зависит от того, сколько места ему разрешено занять - байт, два байта или больше.

Диапазон целого без знака:

От 0 до 2N-1, где n - общее число разрядов, т. е. от 0 до 255 (1 байт), от 0 до 65535 (2 байта).

Обычно один разряд выделяется для знака числа, поэтому диапазон изменяется.

Знаковое целое: от -128 до 127 (1 байт). от -32768 до 32767 (2 байта).

Формат целого числа:

Знак (1 бит)

Число (15, 31, 63 бита)

"+": 1. Простая арифметика => быстродействие выше.

"-": 1. Необходимо, чтобы диапазон данных не выходил за пределы представления числа.

    2. Малый диапазон представления чисел. 3. Погрешность представления зависит от длины числа.

Плавающая запятая.

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

В этом случае число представляется в виде ±M*2±p.

В машинном слове фиксируется расположение всех элементов: мантиссы (±M - целое со знаком) и порядка (±p - целое со знаком).

При выполнении операций учитывается, в каком виде представлены числа. Операции над целыми числами реализуются аппаратно, а над вещественными - программно. Для ускорения вычислений используется математический сопроцессор (дополнительно к основному процессору), который выполняет арифметические операции с вещественными числами аппаратно.

Диапазон представления числа с плавающей запятой намного больше, чем целого. Обычно вещественному числу выделяется 4 байта (32 бита).

Тогда диапазон чисел от -3,4*1038 до 3,4*1038

Это не значит, что можно представить любое число из этого диапазона. Фактически представимой оказывается дискретная последовательность чисел. Шаг дискретизации зависит от количества знаков мантиссы.

Например после 0 следует число ~3,4*10-38, внутри вещественных чисел нет. Из формы представления возникают следующие эффекты:

    1. Ошибка округления. => вычислительные алгоритмы не должны допускать роста погрешности вычислений из-за ошибок округления. 2. Потеря значимости: число стало таким маленьким, что не может быть представлено в ЭВМ - оно превращается в "машинный ноль". 3. Переполнение (эффект, обратный потере значимости): число слишком велико.

Ошибки округления:

Что получится, если к миллиону прибавить одну миллионную? 1 000 000.000 001 - 13 знаков, в мантиссу не поместится, следовательно, миллион не изменится - вроде бы естественно. А если к миллиону прибавить одну миллионную миллион раз? В математике - 1 000 001, в ЭВМ останется тот же миллион.

А если складывать в другую сторону: сначала миллионные доли - получим 1, потом уже прибавим 1 000 000 - получится правильно!

Следовательно коммутативность сложения в ЭВМ нарушается (от перемены мест слагаемых, сумма меняется). Правило: При большом числе слагаемых суммирование начинаем с наименьших.

Похожие статьи




Представление информации в ЭВМ - Представление и хранение информациии в ЭВМ

Предыдущая | Следующая