Смекни!
smekni.com

Конспект лекций по дискретной математике (стр. 10 из 14)

Пример : 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

Максимальное по модулю отрицательное число оказывается по модулю на единицу больше максимального положительного числа.

В связи с этим применение операции изменения знака к максимальному по модулю отрицательному числу приводит к переполнению формата, так как это число не представляется в области положительных чисел.

Формальным приемом изменения знака числа с соответственным преобразованием его из прямого кода в дополнительный или наоборот является инвертирование всех разрядов числа с добавлением единицы в младший разряд.

Для этой цели можно использовать следующее мнемоническое правило : младшие нули и крайняя правая единица прямого кода сохраняются и в дополнительном, а остальные разряды подлежат инвертированию.

Диапазон представления беззнаковых целых чисел в n- разрядном формате имеет вид :

0£Хцб.зн£2n-1

Для стандартного байтного формата (n=8) диапазон :

0£ Xцзн£255

Диапазон представления дробных чисел.

Для правильной n-разрядной двоичной дроби диапазон представления имеет вид

2-n£Aдрпр£1-2-n

Неправильная дробь содержит обязательную двоичную единицу в целой части. Для неправильной n-разрядной двоичной дроби диапазон представления имеет вид

1£Aдрнепр£2-2-(n-1)

Числа с плавающей запятой.

В формате представления чисел с плавающей запятой выделяются 3 части : знак числа (представляется крайне левым битом формата); мантисса числа (представляется в виде правильной или неправильной двоичной дроби); порядок числа (представляется в общем виде как целое число со знаком). Значение числа А с плавающей запятой представляется в виде :

Апз=(sign A)-1*Ma*SPa

где sign A - знак 0 - «+», 1 - «-»

SPa- порядок числа А, S - основание порядка.

Число с плавающей запятой называется нормализованным, если старшая цифра его мантиссы значащая (не 0), в противном случае число называется не нормализованным.

Основными особенностями представления чисел с плавающей запятой в современных ЭВМ являются :

1) Мантисса числа независимо от его знака представляется в прямом коде

2) Порядок числа представляется не в явном виде как знаковое целое, а со смещением в виде беззнакового целого числа.

Эта особенность облегчает обработку порядка при выполнении арифметических операций. Величина смещения равна либо весу старшего разряда порядка, либо на единицу меньше.Cмещенный порядок принято называть характеристикой числа.

3) В качестве основания порядка используется значение S=16 (ЕС ЭВМ) или S=2 (СМ ЭВМ, IEEE).

4) В подавляющем большинстве случаев принято использование нормализованных чисел с целью повышения их точности.

5) При использовании основания порядка, равного двум, нормализованное число содержит обязательную единицу в старшем разряде мантиссы.

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

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

Эти форматы используют наименования :

а) короткий (одинарной точности) - 32 бита;

б) длинный (двойной точности) - 64 бита;

в) расширенный (расширенной точности) - 80 бит для РС и 128 бит для больших ЭВМ.

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

Диапазон представления чисел с плавающей запятой.

Его принято определять в отношении модуля нормализованного числа. В общем случае этот диапазон представим в виде :

М а миннорм *SРамин£½А плнорм½£М Ра макс*SРа макс

Особенности представления чисел с плавающей запятой в ЭВМ различных классов :

1) ЕС ЭВМ (IBM/370) - ЭВМ общего назначения (Main Frame) числа представляются в трех форматах :

0 1 7 8 21(63, 127)

знак характеристика мантисса

В больших ЭВМ принято нумерацию разрядов в формате производить слева направо. В мини компьютерах и персональных ЭВМ - справа налево.

ХАА+d ; d=64

0£XA£127

-64£PA£63

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

Диапазон представления нормализованной мантиссы

1/16£МАнорм£1-2-m<1