Конспект лекций по дискретной математикеРефераты >> Математика >> Конспект лекций по дискретной математике
Информация с которой работает ЭВМ в принципе можно разделить на три вида:
1) Команды.
2) Адреса.
3) Данные.
Как правило адресная информация представлена в самих командах ,но при косвенной адресации адрес может находиться либо в регистре либо в ячейке памяти.
Дерево классификации данных.
Достаточно широко используется термин аппаратная поддержка данных. Принято считать что данные некоторого типа и определенных форматов являются аппаратно поддерживаемыми в конкретной ЭВМ если в системе команд процессора имеются команды для обработки данных данного типа в соответствующих форматах. Для нечисловых данных основных типов поддержка осуществляется на уровне системных команд. Для логических значений в которых смысловое содержание относится к каждому биту поддержка осуществляется на уровне логических команд: AND,OR,XOR,NOT.
Символьные данные поддерживаются на уровне команд преобразования символов, а также на уровне команд обработки строк.
В ПЭВМ символьные данные представляются в коде ASCII. Сам по себе этот код является семи битным ,но для удобства он расширен до восьми битного с добавлением в наго букв национального алфавита.
Числовые данные естественно поддерживаются на уровне арифметических команд. В связи с разделением чисел на двоичные и десятичные для их обработки используется соответствующая арифметика. В зависимости от формы представления двоичных чисел используется два вида двоичной арифметики.
1) Двоичная целочисленная арифметика.
2) Арифметика с плавающей запятой.
Десятичные числа представляются в двоично-кодированном виде ,в котором любая десятичная цифра представляется в естественном двоичном коде, который принято называть :
8-4-2-1
9 - 1001,8 - 1000,7 - 0111, .,1 - 0001.
В упакованном формате в каждом байте содержится две десятичные цифры ,в не упакованном одна. В ПЭВМ неупакованный формат представляется ASCII-кодом десятичных цифр ,в котором собственно цифра помещается в младшую тетраду ,а старшая тетрада имеет вид 0011.
Пример : 985
1) Упакованный формат 0000|1001 1000|0101
2) Не упакованный формат 0011|1001 0011|1000 0011|0101
Десятичные числа используются в ЭВМ на этапе ввода данных и вывода результатов. После ввода они преобразуются в двоичную систему ,в которой реализуется обработка данных. На этапе вывода двоичный результат предварительно преобразуется в десятичную форму. Преобразования десятичных чисел в двоичные и обратно может быть реализовано как на аппаратном так и на программном уровне. На аппаратном уровне предполагается наличие в системе команд процессора соответствующих команд преобразования. Так например в IBM/370 имеется две команды : CBD - преобразование двоичного числа в десятичное , CDB - преобразование десятичного в двоичное. В ПЭВМ подобных команд нет и преобразование реализуется на программном уровне, с использованием стандартных процедур. Общей тенденцией в вычислительной технике при решении вопроса о реализации той или иной функции на аппаратном или программном уровне является: аппаратный уровень ,обладая большей стоимостью реализации, обеспечивает и большую скорость реализации этой функции. Классическая схема обработки - десятичный ввод, преобразование в двоичную систему, двоичная обработка, преобразование в десятичную, десятичный вывод - выглядит неоправданной при решении задач с большим объемом обрабатываемых данных и малым объемом обработки. Более целесообразный путь десятичный ввод, десятичная обработка, десятичный вывод. Для реализации подобной схемы поддерживаемой на аппаратном уровне необходимо использование в системе команд процессора десятичной арифметики.
Двоичные числа с фиксированной запятой.
В зависимости от местоположения фиксированной запятой (справа или слева от числа ) числа с фиксированной запятой делятся на целые и дробные. Дробные числа с фиксированной запятой как таковые в современных ЭВМ не используются ,а используются как часть числа с плавающей запятой в виде его мантиссы . Целые числа делятся на два типа: знаковые и без знаковые. Это разделение определяется способом интерпретации старшего разряда числа. В знаковых он интерпретируется как знак, а в без знаковых числах как старшая цифра числа. Во многих случаях интерпретация целого числа ,как знакового или без знакового возлагается на программиста, хотя на аппаратном уровне может поддерживаться тот или иной способ интерпретации. Примером подтверждающим это может использоваться парные команды умножения MUL,IMUL и деления DIV,IDIV в процессорах INTEL 80X86. Первая команда из этих пар интерпретирует операнды и результат как без знаковое целое ,а вторая как знаковое. Особенностью представления знаковых целых чисел является использование дополнительного кода. Под дополнительным кодом знакового n - разрядного целого числа понимается следующие выражение: ìx, при x³0
[x] дк = í
î2x -|x|, при x<0
Например n=6 число 30 представиться в виде [30] дк =011110
[-30] дк =1.000000
011110
100000
В связи с тем ,что значение 2n не представимо в n - разрядном формате можно осуществлять вычитание из нуля. На этом принципе поддерживаются на аппаратном уровне операция изменения знака числа (NEG) с преобразованием его в дополнительный код. В терминологии по поводу прямого и дополнительного кода существуют некоторые разногласия. Авторы некоторых монографий считают что положительные числа представлены в прямом коде ,а отрицательные в дополнительном. Для общности представления ,как положительных ,так и отрицательных чисел в дополнительном коде правильнее считать что дополнительный код положительного числа совпадает с его прямым кодом. Для отрицательных чисел это несправедливо, так как прямой код отрицательного числа в знаковом разряде содержит единицу ,а в цифровых модуль числа. [-30]пр = 111110
Использование именно дополнительного кода в представлении знаковых целых чисел можно объяснить простотой реализации в этом коде операции сложения и вычитания которые являются самыми массовыми при решении задач научного комплекса. Что касается операций умножения и деления то при использовании дополнительного кода по сравнению с прямым усложняет алгоритм их реализации но тем не менее разработаны методы для выполнения этих операций в дополнительном коде.
Диапазон предоставления чисел
Диапазон представления знаковых n-разрядных чисел определяется в виде
-2 n-1£ Х £ 2n-1 -1
1 000 .0 0 111 .1
n-1 n-1
Для стандартного байтного формата (n=8) диапазон :
-128 £ Xцзн£127
Максимальное по модулю отрицательное число оказывается по модулю на единицу больше максимального положительного числа.
В связи с этим применение операции изменения знака к максимальному по модулю отрицательному числу приводит к переполнению формата, так как это число не представляется в области положительных чисел.