Представление информации в ЭВМ
Машинную команду (инструкцию) представляют в виде последовательности цепочек двоичных цифр. Каждая цепочка имеет фиксированную длину и называется полем. Указанная структура (строение) определяет формат команды. Формат двухоперандной команды можно представить состоящим из следующих полей: поле кода операции, поле операнда-приемника, поле операнда-источника. При задании операндов используют различные способы адресации. Поэтому каждый операнд обычно представляют двумя полями, в которых задают способ адресации и номер регистра, используемого для вычисления физического (исполнительного) адреса обрабатываемого данного. В команде могут отсутствовать операнды. Тогда ее формат представляется одним полем кода операции. Команды перехода, изменяющие естественный (счетный) порядок выборки команд, представляются полем кода операции и полем операнда, который должен указывать на ячейку памяти.
Для представления всех букв, цифр и различных графических знаков, выводимых на экран монитора или на печать можно использовать 8-разрядные коды ASCII (American Standard Code for Information Interchange). Код ASCII представляет собой указатель позиции объекта кодирования, размещенного в заданной кодовой таблице (странице). Указатель позиции кодируемого объекта составляют из указателей столбца и строки кодовой таблицы, на месте пересечения которых помещен кодируемый объект. Старшие четыре бита (тетрада) кода объекта задают номер столбца кодовой таблицы. Младшие четыре бита кода задают номер строки кодовой таблицы. Шестнадцатеричные ASCII коды 00h – 20h используются для задания функций управления. Например, коды 0Ah и 0Dh используются соответственно для перевода строки (перемещение курсора на одну позицию вниз) и возврата каретки (перемещение курсора в начало строки). Коды 30h – 39h задают десятичные цифры. Заглавным и строчным латинским буквам соответствуют коды 41h – 5Ah и 61h – 7Ah. Существуют стандарты Unicode UCS-2 и UCS-4, использующие 16-битовые и 32-битовые коды для представления иероглифов и символов.
Для представления логических типов данных TRUE и FALSE достаточно одного бита, но чаще используют восемь бит (байт).
Числа в ЭВМ представляются кодами (записями определенного вида) конечной разрядности. Ограниченность разрядов влияет на точность представления чисел. Для обозначения (именования) чисел используются различные правила, т.е. системы счисления (нумерации).
Для упрощения правил счета и округления, в ЭВМ применяют позиционную систему счисления, а числа представляют в виде полинома.
– модель числа,
где – любая цифра, которая является целым значением из интервала , обычно равно 2.
Причем для всех разрядов количество допустимых цифр одинаково. Это однородная система счисления. Наиболее часто используются десятичная, двоичная, восьмеричная и шестнадцатеричная системы счисления. Ниже приведен пример представления числа в различных системах счисления.
13d = 1101b = 15o = 0Dh.
Числа в ЭВМ могут быть натуральными, используемыми для задания адресов ячеек памяти. Кроме натуральных чисел используются числа целые и дробные со знаком, представляемые в форме с фиксированной запятой (ФЗ). Предполагается, что запятая (или точка), разделяющая целую и дробную части числа помещается в фиксированной позиции.
Правила счета положительных и отрицательных чисел различные. Для унификации правил счета отрицательные числа необходимо кодировать (только отрицательные).
Дополнительному разряду, задающему знак числа, придается вес, так как используется позиционная система счисления. В зависимости от веса знакового разряда появляются различные коды представления числа. Обычно для дополнительного разряда выбирают неестественный вес, равный –1. Рассмотрим процесс определения значений цифр, используемых для кодирования дробного двоичного числа, имеющего знак.
Представим положительное число в виде полинома. Тогда – значения цифр кода для положительного двоичного числа совпадают со значениями цифр кодируемого числа.
– значения цифр кода для отрицательного числа выявляются после вычитания из 1 величины кодируемой исходной дроби. Величина дроби, представленной кодом, дополняет величину исходной дроби до единицы (дополнительный код).
Иногда для отрицательного числа в качестве веса знака используют величину – тогда значения цифр кода совпадают с инверсными значениями цифр кодируемого числа (обратный код). Ниже приведен пример кодирования исходного числа, представленного в прямом коде, когда знаковому разряду не придается вес. Причем 0 трактуется как знак +, а 1 – как знак -.
1.101 Прямой код (ПК) отрицательной дроби 5/8.
1.010 Обратный код (ОК)
+ 1
Дополнительный код (ДК)
В таблице ниже приведены примеры кодов для некоторых целых чисел.
Числа | ПК | ОК | ДК |
– 2 | 1.0 | ||
– 1 | 1.1 | 1.0 | 1.1 |
– 0 | 1.0 | 1.1 | – |
+ 0 | 0.0 | 0.0 | 0.0 |
+ 1 | 0.1 | 0.1 | 0.1 |
Кроме естественной формы в ЭВМ используется полулогарифмическая форма представления числа.
, – целое, выражающее порядок числа ; – мантисса числа .
Часто , хотя могут использоваться и неправильные дроби. Если , то число с такой мантиссой называется нормализованным. Для представления числа 0 используется максимальный отрицательный порядок, а мантиссу устанавливают нулевую.
Нормализованное представление чисел позволяет сохранить большее количество значащих цифр и тем самым повысить точность вычислений.
,
, ,
, .
Представление чисел с плавающей запятой (ПЗ) позволяет увеличить диапазон обрабатываемых на ЭВМ чисел. Диапазон представления смешанных чисел с ФЗ, для задания которых отведено n разрядов для целой части числа и m разрядов для дробной части числа будет таким.
, .
Диапазон представления чисел с ПЗ следующий:
, .
Рассмотрим примеры сложения дробных чисел, представленных в форме с ФЗ. Для представления отрицательных чисел используем дополнительный код.
Пусть требуется сложить +5/8 и -3/8. Представим эти числа в прямом коде, используя один бит (слева в изображении) для знака и три бита для цифр числа. После знака числа при его изображении поместим точку.
ПК первого числа 0.101, ПК второго числа 1.011
ДК первого числа 0.101, ДК второго числа 1.101
Осуществим сложение указанных чисел (ниже представлены три строки).
0.101 ДК = ПК
1.101 ДК
10.010 результат сложения со знаком + и для его хранения достаточно четырех бит.
В результате сложения образуется перенос в знаковый разряд и перенос из знакового разряда, что свидетельствует о достаточности количества разрядов, выделенных для хранения исходных чисел, для хранения результата. Т. е. ситуация переполнения, которая может возникать при сложении, для данного примера отсутствует. Число, полученное в результате сложения, характеризуется признаком переполнения, равным нулю: OVR = 0. Вычисление значения признака переполнения производится в соответствии со следующей формулой:
,
где обозначает перенос в знаковый разряд;
обозначает перенос из знакового разряда;
обозначает логический оператор сложения по модулю два.
Пусть требуется сложить -5/8 и -4/8. Представим эти числа в дополнительном коде и осуществим их сложение.
1.011 ДК
1.100 ДК
10.111 результат сложения, характеризующийся признаком OVR = 1.
При сложении чисел -5/8 и -3/8 будет получен результат 11.000, характеризующийся признаком OVR = 0. Однако указанный результат не помещается в выделенных четырех разрядах. Подобное переполнение выявляется особо.