ФЕДЕРАЛЬНОЕАГЕНСТВО ПО ОБРАЗОВАНИЮ
Брянскийгосударственный технический университет
Контрольная работа
по «ОрганизацииЭВМ»
На тему:«Числовая и нечисловая обработка информации».
Выполнил: Сафронов
Сергей Геннадьевич
№ 06.0523
группа 3-06 ПРО
Проверил: Филиппов
Родион Алексеевич
Новозыбков2007г.
Содержание
Введение.
Представлениецелых чисел
Прямойкод
Дополнительныйкод
Преобразованиепри изменении длины разрядной сетки
Представлениес фиксированной точкой
Арифметическиеоперации с целыми числами
Сложениеи вычитание в дополнительном коде
Представлениечисел в формате с плавающей точкой
СтандартIEEE формата с плавающей точкой
Арифметическиеоперации над числами в формате с плавающей точкой.
Точностьвыполнения операций. Дополнительные разряды
Особенностивыполнения арифметических операций в соответствии с IEEE
Заключение
Приложение
Списоклитературы.
/>Введение
Современный этапразвития информационных технологий характеризуется быстрым ростомпроизводительности компьютеров и облегчением доступа к ним. С этим связан всевозрастающийинтерес к использованию компьютерных технологий для организации мониторингаразличных объектов, анализа данных, прогнозирования и управления в различныхпредметных областях. Исследователи и руководители возлагают определенныенадежды на повышение эффективности применения компьютерных технологий. На путиреализации этих ожиданий имеются определенные сложности, связанные сотносительным отставанием в развитии математических методов и реализующего ихпрограммного инструментария. И анализ, и прогнозирование, и управлениесущественным образом основываются на математическом моделировании объектов.Математическое моделирование, в свою очередь, предполагают возможностьвыполнения всех арифметических операций над отображениями объектов в моделях инад их элементами. В практике интеллектуального анализа данных в экономике,социологии, психологии, педагогике и других предметных областях все чащевстречаются ситуации, когда необходимо в рамках единой математической модели совместнообрабатывать числовые и нечисловые данные.
Интервальные оценкисводят анализ чисел к анализу фактов и позволяют обрабатывать количественныевеличины как нечисловые данные. Однако это ограничивает возможности обработкиколичественных величин методами обработки нечисловых данных. В математическоймодели анализа, основанной на системной теории информации, наоборот,качественным, нечисловым данным приписываются количественные величины.
Целью данной работыявляется определение и рассмотрение понятия числовой и нечисловой обработки информации.
/>Представлениецелых чисел
В двоичной системесчисления числа представляются с помощью комбинации единиц и нулей, знака«минус» и знака разделяющей точки между целом дробной частью числа.Например, десятичное числе 1.3125,0 в двоичном виде будет выглядеть как1001.0101. Но в компьютере не можем хранить и обрабатывать символы знака иразделяющей точки — «машинного» представления чисел могутиспользоваться только двоичные (0 и 1). Если операции выполняются только снеотрицательными числами формат представления очевиден. В машинном слове из 8бит можно предстал числа в интервале от 0 до 255.
/>/>
Прямойкод
Существует несколько соглашенийо едином формате представления положительных, так и отрицательных чисел. Все ихобъединяет то, что старшийбит слова (с точки зрения европейца — самыйлевый, или бит, которому представлении числа без знака должен быть приписансамый большой вес) является битом хранения знака или знаковым разрядом. Всепоследующие биты слова представляют значащие разряды числа, которые вкаждом формате интерпретируются по-своему. Значение 1 в знаковом разрядеинтерпретируется как представление всем словом отрицательного числа. Простейшимформатом, который использует знаковый разряд, является прямой код. В n-разрядномдвоичном слове п-1 значащих разрядов представляют абсолютную величинучисла.
Формат представлениячисел в прямом коде неудобен для использования в вычислениях.
Во-первых, сложение ивычитание положительных и отрицательных чисел выполняется по-разному, а потомутребуется анализировать знаковые разряды операндов.
Во-вторых, в прямомкоде числу 0 соответствуют две кодовых комбинации:
Это также неудобно, посколькуусложняется анализ результата на равенство нулю а такая операция в программахвстречается очень часто.
Из-за этих недостатковпрямой код практически не применяется при реализации в АЛУ арифметическихопераций над целыми числами. Вместо этого наиболее широкое применение находитдругой формат, получивший наименование дополнительного кода.
/>/>
Дополнительныйкод
Как и в прямом, вдополнительном коде старший разряд в разрядной сетке отводится дляпредставления знака числа. Остальные разряды интерпретируются не так, как впрямом коде. В таблице перечислены основные свойства дополнительного кода иправила выполнения арифметических операций в дополнительном коде, которые мырассмотрим в этом и следующем разделах.
Таблица Свойствапредставления чисел в дополнительном кодеДиапазон представления на n-разрядной сетке от -2 в степени n-1 до 2 в степени n+1 Количество кодовых комбинаций, соответствующих числу 0 Одна Отрицание Инвертировать значение в каждом разряде представления исходного числа (положительного или отрицательного), а затем сложить образовавшееся число с числом 0001 по правилам сложения чисел без знака Расширение разрядности представления Добавить дополнительные разряды слева и заполнить их значением, равным значению в знаковом разряде исходного представления Определение переполнения при сложении Если оба слагаемых имеют одинаковые знаки (оба положительны или оба отрицательны), то переполнение возникает в том и только в том случае, когда знак суммы оказывается отличным от знаков слагаемых Правило вычитания
Для вычитания числа В из числа А инвертировать знак числа В, как описано выше, и сложить преобразованное число с А по правилам сложения в дополнительном коде
В большинстве описанийдополнительного кода основное внимание уделяется технике формированияпредставления отрицательного числа по представлению соответствующегоположительного, причем не приводится формальное — доказательство работоспособностиописанной схемы. Рассмотрим n-разрядноедвоичное целое число А в дополнительном коде. Если А положительно,то значение его знакового разряда равно О, В значащих разрядах будетпредставлена абсолютная величина числа точно так же, как и в прямом коде. Число0 считается положительным и, следовательно, в знаковом разряд его представлениябудет записан код 0, а во всех значащих разрядах также ко 0.
Теперь перейдем котрицательным числам. Знаковый разряд an-1дополнительного кода отрицательного числа А (Аравен 1. В n-1значащих разряда может содержаться произвольная комбинация нулей и единиц. Следовательно,имеется потенциальная возможность представить отрицательные числа. Желательнотаким образом установить соответствие между двоичными комбинациями и целымиотрицательными числами, чтобы арифметические операции над ними выполнялись потем же правилам правилам, что и над числами без знака. В формате целых чиселбез знака для вычисления значения числа по его двоичному представлению следуетприсвоить старшему разряду в разрядной сетке вес. При представлении, включающеми знаковый разряд, это приводит к тому, что желаемые арифметические свойствасохраняются, если вес этого разряда (старшего в разрядной сетке представления)будет равен -2 в степени n-1.Это соглашение и используется при представлении чисел в дополнительном коде.Знаковый разряд дополнительного кода положительного числа равен 0 и,следовательно, его член равен 0. Таким образом, соотношение справедливо длядополнительного кода как положительных, так и отрицательных чисел.
Схематически изобразитьсвойства представления чисел со знаком в дополнительном коде можно с помощьюгеометрической интерпретации, представленной в приложении рисунок 1.
Круговые диаграммы наэтом рисунке представляют соответствующие отрезки числовой оси, состыкованные вконечных точках. Начав с любого числа, на круговой диаграмме можно добавлятьположительное число k,вычитатьотрицательное число k,передвигаясьна kпозицийпо часовой стрелке или вычитать положительное число k,добавлятьотрицательное число k,передвигаясь на kпозицийпротив часовой стрелки. Если при этом пересекается позиция, соответствующаястыковке конечных точек отрезка числовой оси, арифметическая операция дастнекорректный результат.
Представление вдополнительном коде в значительно упрощает правила выполнения арифметическихопераций сложения и вычитания. Поэтому такое представление используется дляработы с целыми числами в подавляющем большинстве АЛУ современных процессоров.
/>/>
Преобразованиепри изменении длины разрядной сетки
Иногда возникаетнеобходимость записать n-разрядноецелое двоичное число в слово длиной т бит, причем т>п. Еслиисходное число представлено в прямом коде, такое преобразование выполняетсядовольно просто — нужно перенести знаковый разряд в крайний левый бит новогослова, а остальные дополнительные биты заполнить нулями.
Но с отрицательнымичислами в дополнительном коде такая схема не дает правильного результата.Преобразование дополнительного кода при расширении разрядной сетки выполняетсяследующим образом: нужно скопировать значение знакового разряда во вседополнительные биты. Если исходное число было положительным, то вседополнительные биты заполнятся нулями, а если отрицательным — единицами Этаоперация называется расширением знака. Формально справедливость этогоправила доказывается следующим образом. Рассмотрим n-разряднуюпоследовательность двоичных цифр, которая интерпретируется как представление вдополнительном коде числа А.
/>/>
Представлениес фиксированной точкой
И наконец,следует остановиться еще на одном нюансе. Описанные выше форматы объединяютсячасто одним термином — формат с фиксированной т кой. Суть его в том, чтоположение разделительной точки между целой и дробной частями числа неявнофиксируется на разрядной сетке. В настоящее время принято фиксировать точкусправа от самого младшего значащего разряда. Программист может использоватьаналогичное представление для работы с двричными дробными числами, мысленнофиксируя точку перед старшим значат, разрядом и соответственномасштабируя результаты преобразований, выполняемых стандартными программнымиили аппаратными средствами.
/>/>
Арифметическиеоперации с целыми числами
Отрицание
Операция отрицаниячисла, представленного в прямом коде, выполняется очень просто — нужноинвертировать значение знакового разряда. Если же число представлено вдополнительном коде, отрицание выполняется несколько сложнее, Правиловыполнения этой операции формулируется следующим образом. Следует инвертироватьзначение в каждом разряде представления исходного числа (положительного илиотрицательного), включая и знаковый, т.е, установить значение 1 в тех разрядах,где ранее было значение 0, и значение 0 — в тех разрядах, где ранее былозначение 1 (эту операцию иногда называют поразрядным дополнением — bitwisecomplement, а ее результат — инверснымкодом).
Нужно сложитьобразовавшееся число с числом 0,. .001 по правилам сложения чисел без знака.Иногда эту операцию называют вычислением дополнения числа в дополнительномкоде (twoscomplementoperation).
После операциипоразрядного дополнения получим инверсный код интерпретируя его как число беззнака, добавим число 1. Полученныйрезультат вновь интерпретируем какчисло В в дополнительном коде.
Соотношение А = -В эквивалентносоотношению А+В=0.
/>/>
Сложениеи вычитание в дополнительном коде
При выполнении сложениячисел с одинаковыми знаками результат может оказаться таким, что не вмешается виспользуемую разрядную сетку, т.е. получается число, которое выходит за диапазонпредставления. Появление такого результата расценивается как переполнение (overflow),ина схему АЛУ возлагается функция выявить переполнение и выработать сигнал,который должен воспрепятствовать использованию в дальнейшем полученногоошибочного результата. Для вычитания одного числа (вычитаемого) издругого (уменьшаемого) необходимо предварительно выполнить операцию отрицаниянад вычитаемым, а затем сложить результат с уменьшаемым по правиламсложения в дополнительном коде.
В приложении, рисунок2, представлена блок-схема узлов АЛУ, принимающих участие в выполнении операцийсложения и вычитания целых чисел. Центральным узлом является двоичный сумматор,на входы которого подаются коды слагаемых, а на выходах формируется двоичныйкод суммы, причем операция выполняется по правилам сложения чисел без знака.При выполнении сложения оба слагаемых направляются на входы сумматоранепосредственно из регистров слагаемых. Результат передается либо в один изрегистров слагаемых, либо в третий регистр результата. Кроме кода результататип сумматор формирует сигнал переполнения, который фиксируется в 1-битовомфлаге переполнения. Значение флага интерпретируется следующим образом: 0 —переполнение отсутствует, 1 — есть переполнение. При выполнении операциивычитания код вычитаемого, хранящийся перед началомоперации в регистре,передается на схему, выполняющую операцию отрицания, а уже с выхода этой схемыкод поступает на вход сумматора.
Умножение
Алгоритмы выполненияумножения значительно сложнее, чем сложения и вычитания, причем в современныхвычислительных системах можно встретить как аппаратную его реализацию, так ипрограммную. Существует много вариантов этих алгоритмов, причем многие из нихимеют не только теоретический, но и практический интерес, и выбор одного измногих может быть произведен только с учетом специфики применения конкретнойсистемы.
Начнем с простой задачиперемножения двух чисел без знака (т.е. неотрицательных чисел), а затемрассмотрим один из наиболее широко известных алгоритмов умножения целых чиселсо знаком, представленных в двоичном коде.
Умножения чисел беззнака
1. При выполненииумножения необходимо формировать частичные произведения, по одному на каждыйразряд множителя. Эти частичные произведения затем суммируются, а их сумма иесть результат умножения — полное произведение.
2. Сформироватьчастичные произведения в двоичном коде довольно легко. Если соответствующийразряд множителя равен 0, частичное произведение также равно 00..00. Еслисоответствующий разряд множителя равен 1. частичное произведение равномножимому.
3. Полное произведениевычисляется суммированием частичных произведений, причем каждое очередноечастичное произведение в этой сумме сдвигается на одну позицию влевоотносительно предыдущего.
4. Результатомперемножения двух n-разрядных целыхчисел будет 2n-разрядное число.
Во-первых, суммированиеочередного частичного произведения можно выполнять немедленно после того, каконо будет сформировано, не дожидаясь остальных. Во-вторых, можно сформироватьчастичные произведения. Для разряда в коде множителя, равного 1, нужновыполнить сдвиг и сложение кода множимого, а для разряда, равного 0, — толькосдвиг.
Умножение чисел вдополнительном коде
Мы уже отмечали, чтопри выполнении сложения и вычитания чисел в дополнительном коде ониинтерпретируются как числа без знака. Схема оказывается неработоспособной привыполнении умножения. Она неприменима, если оба сомножителя отрицательны. Онанеправильного результата в случае, если отрицателен хотя бы один изсомножителей.
Единственное отличие втом, что частичные произведения трактуются как 2n-разрядныечисла, сформированные из n-разрядногомножимого. Рассматривая 4-разрядное множимое как число без знака, получим послерасширения до восьми разрядов. Любое частичное произведение, соответствующееумножению этого числа на некоторый разряд множителя, отличный от 0-го,формируется сдвигом расширенного кода множимого влево на соответствующее числоразрядов, причем освободившиеся справа разряды, заполняются кодом 0. Каждоечастичное — введение, образованное от отрицательного множимого, при егоформировании знаковый разряд исходного числа должен быть расширен. Разрядыотрицательного множителя в дополнительном коде не соответствуют частичнымпроизведениям, сформированным сдвигом множимого. Для суммирования частичныхпроизведений нельзя использоватьзначения разрядов кода множителя
Решить эту дилеммуможно по-разному. Один из способов — преобразовать оба сомножителя вположительные числа, перемножить их по правилам умножения чисел без знака, азатем, если знаки сомножителей были разными, выполнить операцию отрицаниярезультата по правилам, принятым для чисел в дополнительном коде. КонструкторыАЛУ предпочитают способ, который не требует выполнения дополнительногопреобразования после завершения умножения: алгоритм Бута (Booth).Схема алгоритма Бута приведена в приложении (рисунок 3). Сомножителиразмещаются в регистрах. Кроме них имеется одноразрядный регистр, которыйсвязан с младшим разрядом регистра. Если оба разряда имеют одинаковые значения,все разряды регистров сдвигаются на 1 разряд вправо. Такую операцию принятоназывать сдвигом с сохранением знака или арифметическим сдвигом. Следовательно,произведение на такой множитель можно получить с помощью всего одной операциисложения и одной операции вычитания.
/>/>
Представлениечисел в формате с плавающей точкой
В формате сфиксированной точкой, в частности в дополнительном коде, можно представлятьположительные и отрицательные числа в диапазоне, симметричном на числовой осиотносительно точки 0. Расположив воображаемую разделяющую точку в серединеразрядной сетки, можно в этом формате представлять не только целые, но исмешанные числа, а также дроби.
Однако такой подходпозволяет представить на ограниченной разрядной сетке множество вещественныхчисел в довольно узком диапазоне. Нельзя представить очень большие числа илиочень маленькие. При выполнении деления больших чисел, как правило, теряетсядробная часть частного.
При работе в десятичнойсистеме счисления ученые давно нашли выход из положения, применяя дляпредставления числовых величин так называемую научную нотацию.
Этот же подход можноприменить и в двоичной системе счисления. Компоненты можно сохранить в двоичномслове, состоящем из трех полей:
• поле знака числа(плюс или минус);
• поле мантиссы;
• поле порядка.
Основаниехарактеристики во всех существующих стандартах такой формы представленияподразумевается неявно и не сохраняется, поскольку оно одинаково для всехчисел.
Для представленияпорядка используется так называемый смещенный формат. Для получениядействительного двоичного кода пс рядка из значения, сохраняемого в этом поле,нужно вычесть фиксированное смещение. Этого не наблюдается припредставлении чисел в прямом и дополнительном кодах. Преимущество смещенногопредставления порядка в формате числа с плавающей точкой в том, что результатсравнения двух неотрицательных вещественных чисел будет таким же, как ирезультат сравнения: кодов, рассматриваемых как целые числа без знака.
Для упрощенияалгоритмов выполнения арифметических операций обычно принято нормализовать мантиссу.Код, состоящий из нулей во всех разрядах, считается допустим и представляетчисло 0. В области переполнения можно попасть в том случае, если результатарифметической операции имеет абсолютную величину.
/>/>
СтандартIEEEформата с плавающей точкой
Хотя унификации форматапредставления чисел с плавающей точкой, что является необходимым условиемпереносимости программного обеспечения. Разработан стандарт 754-CLE85.Впоследнее десятилетие практически все процессоры и арифметические процессорыпроектируются с учетом требований этого стандарта.
Стандарт специфицируетдва варианта формата: 32-битовый — обычное представление и 64-битовый —удвоенная точность представления. В первом формате поле порядка занимает 8 бит,а во втором — 11 бит. Стандарт регламентирует использование числа 2 в качественеявно заданного значения основания характеристики. Помимо основных, встандарте предусмотрены два расширенных варианта форматов обычной и удвоеннойточности. Расширенные форматы позволяют включать дополнительные биты в полепорядка, предназначаются для промежуточных вычислений. За счет повышения точностиснижается вероятность появления слишком больших ошибок. А при расширениидиапазона снижается вероятность появления переполнения. Еще одно достоинстворасширенного формата обычной состоит в том, что он позволяет использоватьнекоторые свойства формата с удвоенной точностью, но при этом не требуетсоответствующего увеличения времени выполнения арифметических операций.
/>/>
Арифметическиеоперации над числами в формате с плавающей точкой
При сложении ивычитании необходимо предварительно уравнять порядки операндов, что требуетсдвига положения разделительной точки в мантиссе. Операции умножения и деленияуравнивания порядков операндов не требуют. При выполнении операций могутвозникнуть следующие особые ситуации.
• Переполнение порядка.Положительный порядок результата превышает максимальное значение,предусмотренное форматом. Такой результат может трактоваться как величина + или-.
• Потеря значимостипорядка. Отрицательный порядок результата меньше минимального значения,допускаемого принятым форматом
• Потеря значимостимантиссы. В процессе уравнивания порядков мантисса сдвигается настолькосильно вправо, что старший значащий ее разряд выходит за пределы разряднойсетки. Как будет показано далее, в этом случае требуется определенная формаокругления.
• Переполнениемантиссы. При сложении мантисс с одинаковыми знакам: возможно появлениепереноса из старшего разряда.
Сложение и вычитание
Алгоритмы выполненияопераций сложения и вычитания в формате с плавающей точкой сложнее, чеманалогичные алгоритмы для чисел с фиксированной точкой. Связано это снеобходимостью выравнивания порядков операндов. Алгоритм включает четыреосновных этапа.
1. Проверка на нуль.
2. Сдвиг мантисс длявыравнивания порядков.
3. Суммирование иливычитание мантисс.
4. Нормализациярезультата.
Детальный пошаговыйанализ этого алгоритма покажет, какие функции используются при выполненииопераций сложения и вычитания чисел в формате с плавающей точкой. В дальнейшемдля определенности будем считать, что используется формат регламентированныйстандартом IEEE 754. Перед началомвыполнения операций операнды должны быть помещены в регистры АЛУ. Если виспользуемом формате с плавающей точкой предполагается неявный старший разрядмантиссы, этот разряд должен быть в явном виде включен в регистры операндов, ивсе операции с ним в дальнейшем будут проводиться точно так как и с остальнымиразрядами мантиссы. Поскольку операции сложения и вычитания отличаются толькотем, что при вычитании предварительно изменяется знак второго операнда(вычитаемого), эта операция включена в ветвь вычитание на схеме алгоритма:после чего обе ветви сливаются. Далее анализируется, не равен ли один изоперандов нулю. Если это так, то результат — значение второго операнда.Очевидно, что нельзя просто сложить мантиссы этих двух чисел. Нужно выровнятьразрядные сетки мантисс так, чтобы соответственные разряды (разряды с равнымвесом) занимали одинаковые позиции.
Выравниваниевыполняется за счет сдвига мантиссы меньшего числа вправо, мантиссы большегочисла — влево. Поскольку в любом варианте теряются, выполняется сдвиг мантиссыменьшего числа вправо, что привел к утере ее младших разрядов. Сдвигивыполняются до тех пор, пока значения порядков обоих чисел не станут равны.Таким образом, если порядкислагаемых существенно отличаются, меньшее слагаемое в результате неучитывается. После того, как порядки будут выровнены, наступает этапсложения. Поскольку слагаемые могут иметь разные значения алгебраическаясумма может оказаться равной нулю.
В этом случаенеобходимо выполнить дополнительный сдвиг результата вправо и временноувеличить на 1 значение порядка. Но тогда возможно появление — переполненияпорядка, которое расценивается как аварийная ситуация и влечет за собойпрекращение операции. После сложения мантисс наступает этап нормализации результата,Нормализация представляет собой серию сдвигов кода мантиссы влево содновременным уменьшением значения порядка до тех пор, а значение старшей цифрымантиссы не станет отличным от нуля.
Умножение и деление
При работе с числами вформате с плавающей точкой алгоритмы умножения и деления оказываются прощеалгоритмов сложения и вычитания. Сначала рассмотрим алгоритм умножения(Приложение, рисунок 4). Сразу же после начала операции проверяется, не равенли нулю один из сомножителей. Если это так, то произведение также будет равнонулю. Следующий шаг — суммирование порядков. Поскольку, как правило, дляхранения порядков используется смещенное представление, при суммировании двухсмещенных представлений результат будет смещен дважды. Поэтому послесуммирования кодов порядков из суммы вычитается значение смещения. Присуммировании может возникнуть как переполнение порядка, так и потерязначимости. В обоих случаях формируется соответствующий сигнал.
Если порядокпроизведения не выходит из диапазона, определенного форматом, далееперемножаются мантиссы сомножителей с учетом их знаков. Умножение мантиссвыполняется по тому же алгоритму, что и умножение целых чисел в прямом коде,т.е. фактически перемножаются числа без знака, а затем произведениюприписывается знак «плюс» или «минус» в зависимости отсочетания знаков сомножителей. Произведение мантисс имеет разрядность, вдвоебольшую, чем каждый из сомножителей. Лишние младшие разряды отбрасываются приокруглении. После того как будет получено произведение мантисс, результатнормализуется и округляется. Эти операции выполняются так же, как и присложении или вычитании. Необходимо учесть, что при нормализации может возникнутьпереполнение или потеря значимости порядка.
Теперь рассмотрималгоритм деления (Приложение, рисунок 5). Как и ранее, первый этап — анализоперандов на равенство нулю. Если нулю равно делимое, то результату сразуприсваивается значение 0. Если же нулю равен делитель, то в зависимости отконкретной реализации АЛУ результату может быть присвоено значение«бесконечность» с соответствующим знаком или сформирован сигналарифметической ошибки. Следующий этап — вычитание кода порядка делителя из кодапорядка делимого. При этом получится несмещенный код разности, который нужноскорректировать — сложить с кодом смещения. После завершения операций спорядком результата проверяется, не возникло ли переполнение порядка или потерязначимости. Следующий этап — деление мантисс. За ним следуют обычные операциинормализации и округления.
/>/>
Точностьвыполнения операций. Дополнительные разряды
Перед началомвыполнения любых арифметических операций операнды загружаются в регистры АЛУ.Регистры, предназначенные для работы с мантиссами, могут иметь большуюразрядность, чем поле мантиссы, предусмотренное форматом представления, плюсодин неявно заданный старший разряд. Как правило, дополнительные разрядыразмещаются справа, т.е. имеют вес, меньший веса самого младшего разрядапредставления. При загрузке регистров эти разряды заполняются кодом 0. Нижепредставлены примеры, которые помогут вам понять смысл использования этихдополнительных разрядов. Будем считать, что для представления чиселиспользуется формат, регламентированный стандартом IEEE— мантисса имеет длину 24 разряда, включая неявный старший разряд слева отразделительной точки. При вычитании меньшего числа из большего мантисса меньшегочисла должна быть сдвинута на один разряд вправо для того, чтобы выровнятьпорядки операндов.
Округление.
Результат любойоперации над мантиссами операндов, как правило, формируется в регистре АЛУ,имеющем большую разрядность, чем предусмотрено форматом хранения. Поэтому присохранении результата необходимо тем или иным способом выполнить егоокругление. Стандартом IEEEпредусматривается четыре альтернативных подхода к выполнению округления:
• округление доближайшего числа, которое можно представить в используемом формате;
•округление до +;
•округление до -;
•округление до нуля.
Рассмотрим эти способыболее детально. Способ округления до ближайшего числа определяется в стандартеследующим образом. При сохранении результата, имеющего теоретически бесконечнуюточность, необходимо взять ближайшее к результату число, которое можнопредставить в используемом формате хранения. Если существуют два числа,одинаково близких к результату, выбирается то из них, у которого младший разрядравен 0. Лучший результат дает метод несмещенной ошибки. Один извариантов несмещенного округления — после выполнения операции, результаткоторой соответствует этому особому случаю, случайным образом выбиратьокругление до большего или до меньшего. Тогда в среднем результат всей процедурыбудет несмещенным. Аргумент против этого подхода состоит в том, что он не даетвозможности получить повторяющиеся результаты вычислений одной и той жепроцедуры с одними и теми же исходными данными (т.е. вычислительная процедурастановится недетерминированной). Стандарт IEEEрегламентирует такой подход, который заставляет сохранять в том случае четныйрезультат:
Если результатвычислений в равной степени отличается от большего и меньшего числа,представимого в данном формате, значение округляется до большего, если младшийпредставимый разряд до округления равен 1, и до меньшего, если этот разрядравен 0. Следующие два метода, упоминаемые в стандарте, — округление до плюсминус бесконечности — применяются при реализации методики вычисления,известной под именем «арифметика интервалов», которая предусматриваетопределение границ (верхней и нижней) значений результата. Последний способ,оговоренный в стандарте, предусматривает округление до. Фактически этотспособ предполагает усечение результата — дополнительного разряды простоотбрасываются. При использовании этого способа хранимый. Результат поабсолютной величине будет всегда меньшим или равным точному значению, а потомупри выполнении длительных вычислительных процедур образуется смещение в сторонуменьших значений (к нулю). Эффект накопления и ошибки округления может бытьзначительно более серьезным, чем той, которую мы упоминали чуть выше, посколькусмещенная ошибка возникает при исполнении каждой операции, а не только вособых случаях.
/>/>
Особенностивыполнения арифметических операций в соответствии со стандартом IEEE
Стандартом IEЕЕ754 регламентируется не только формат с плавающей точкой для представлениячисел, но и определенные правила выполнения арифметических операций над ними,что позволяет получать одинаковые результаты при реализации вычислительныхалгоритмов на разных аппаратных и программных платформах.
Простые исигнализирующие значения типа NaN
Значения типа NaNпредставляют, по существу, не числа, а символ «втиснутые» в формат сплавающей точкой. Различается два подтипа NVзначений — сигнализирующее и простое. Оба подтипа NaN-значенийпредставляются в формате с плавающей точкой одинаково — поле порядка заполненоединицами, а в поле мантиссы присутствует код, отличный от всех нулей, которыйстандарт не регламентирует.
Заключение
В работе былирассмотрены алгоритмы выполнения основных арифметических операций над целымичислами, представленными в дополнительном коде. В анализе числовые и нечисловыеданные обрабатываются единообразно на основе одной математической модели какчисловые данные.
Для проведения подобныхисследований обычно реализуется один из двух вариантов:
— изучаетсяподмножество однородных по своей природе данных, измеряемых в одних единицахизмерения;
— перед исследованиемданные приводятся к сопоставимому виду, например, широко используютсяпроцентные или другие относительные величины.
Первый вариант являетсяне решением проблемы, а лишь ее вынужденным обходом, обусловленнымограничениями реально имеющегося в распоряжении исследователей инструментария.
Второй вариант лишьчастично решает проблему – снимает различие в единицах измерения. Однако он непреодолевает принципиального различия между количественными и качественными(нечисловыми) величинами и не позволяет обрабатывать их совместно в рамкахединой модели
Числовые данные могутбыть различной природы, и, соответственно, они измеряются в самых различныхединицах измерения. Однако арифметические операции можно выполнять только надчисловыми данными, измеряемыми в одних единицах измерения. Данные нечисловойприроды, т.е. различные факты и события, характеризуются тем, что с ними вообщенельзя выполнять арифметические операции. Соответственно, возникает потребностьв математических методах и программном инструментарии, обеспечивающихсовместную сопоставимую обработку разнородных числовых данных и данныхнечисловой природы.
/>Приложение
Геометрическаяинтерпретация представления целых чисел со знаком в дополнительном коде: а)-4-разрядные числа, б)- n-разрядныечисла.
/>
Блок-схема узлов АЛУ,выполняющих сложение и вычитание.
/>
Схема умножения чисел вдополнительном коде алгоритма Бута.
/>
Алгоритм умножениячисел в формате с плавающей точкой.
/>
Алгоритм деления чиселв формате с плавающей точкой.
/>
/>Списоклитературы
1. ДухничЕ.И., Андреев А.Е., Организация вычислительных машин и систем: Учебн.пособие/ВолгГТУ, Волгоград, 2003.-80с.
2. ЛуценкоЕ.В. «Вычислительные машины» — Краснодар. 2000.
3. ТертышныйВ.Т. «История персонального компьютера» — М. 2002.
4. УильямСтоллингс «Структурная организация и архитектура компьютерных систем». — М2002г.
5. www.intuit.ru – “ИнтернетУниверситет”, портал дистанционного образования.