Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Вопрос 7. Представление чисел в ЭВМСодержание книги
Поиск на нашем сайте
В ЭВМ числа хранятся в ячейках ЗУ. Ячейки памяти ЭВМ представляют собой набор разрядов, в каждом из которых может храниться двоичная цифра 0 или 1. В зависимости от способа представления чисел в виде числовых кодов различают машины с фиксированной и плавающей запятой. В ЭВМ с фиксированной запятой используется естественная форма записи, при которой цифры числа записывают в строку, а целая часть числа от дробной отделяется запятой. В ячейке памяти машины с фиксированной запятой один разряд, как правило, первый справа предназначается для записи знака числа, а остальные - цифровые. Некоторое постоянное число их отводится для записи целой части, оставшиеся - для хранения дробной части числа. Для изображения знака числа используются двоичные цифры: "+" = 0; "-" = 1.Если записывается число положительное, в знаковый ряд заносится нуль, и единица - если число отрицательное. Во время исполнения арифметических операций могут получаться результаты, целая часть которых не умещается в отведенных для нее разрядах. Это явление называется переполнением разрядной сетки. В ЭВМ с плавающей запятой используется так называемая полулогарифмическая, или нормальная, запись чисел. При этом каждое число характеризуется двумя величинами - мантиссой и порядком - и записывается в виде: x = m*10p, где |m|<1, а p - целое число. Мантисса показывает последовательность цифр числа х, а порядок - положение запятой в числе. Например, число 175,410 можно записать в виде: 175,4 = 0,1754*103, здесь m = 0,1754, p = +3. Для числа 0,00029 =0,029*10-2 = 0,29*10-3. Для каждого числа может быть найдено множество нормальных форм. Чтобы повысить точность представления чисел, в машинах используется нормализованная форма, в которой на мантиссу накладывается еще одно требование - первая ее цифра после запятой должна быть значащей, так что мантисса удовлетворяет неравенствам: 0,1<|m|<1 В некоторых ЭВМ в начале ячейки размещается мантисса, за ней порядок, в других они меняются местами. Знаки мантиссы и порядка кодируются так же, как в машинах с фиксированной запятой ("+" = 0; "-" = 1). Диапазон чисел, представляемых в машинах с плавающей запятой, намного шире, чем диапазон чисел, представляемых в ЭВМ с фиксированной запятой. Определим его для разрядной сетки с n разрядами для порядка и m разрядами для мантиссы в двоичной системе: Диапазон чисел определяется количеством разрядов, выделенных для записи порядка: чем больше величина m, тем шире диапазон. Длина же мантиссы никак не влияет на диапазон. Если в результате выполнения арифметической операции получается порядок, не умещающийся в отведенных для него разрядах ячейки, в машинах с плавающей запятой вырабатывается сигнал переполнения разрядной сетки. При переполнении мантиссы такого сигнала не вырабатывается, а производится автоматическая нормализация результата. Современные ЭВМ имеют оба режима выполнения операций или только режим с плавающей запятой. Во всех ЭВМ без исключения все операции выполняются над числами представленными специальными машинными кодами. Их использование позволяет обрабатывать знаковые разряды чисел, а также заменять операцию вычитания операцией сложения. Различают прямой код, обратный код, дополнительный код. Эти коды определяются для двоичных дробных чисел вида x =? 0 x1x2...xn. Прямой, обратный и дополнительный коды числа х обозначаются соответственно [x]пр, [x]обр, [x]доп. Для неотрицательных чисел все три кода имеют одинаковый вид и совпадают с записью самого числа: X=[x]пр=[x]обр=[x]доп для x? 0 Прямой код двоичного числа образуется из абсолютного значения этого числа и кода знака числа (нуль или единица) перед его старшим числовым разрядом. Пример A10= +10 A2= +1010 [A]пр= 0: 1010. B10= -15 B2=-1111 [Б]пр= 1: 1111. Обратный код отрицательного числа содержит единицу в знаковом разряде числа, а значащие разряды числа заменяются на ирверсные, т.е. нули заменяются единицами, а единицы нулями. Пример А10= +5, А2= +101 [А2]пр=[А2]обр=0: 101; В10= -13 В2=-1101 [В2]обр=1: 0010. Дополнительный код отрицательного числа представляет собой результат суммирования обратного кода числа с единицей младшего разряда. Пример А10= +19 А2= +10011 [А2]пр=[А2]обр=[А2]доп=0: 10010 В10= -13 В2= -1101 [В2]доп=1: 0011. Модифицированные обратные и дополнительные коды отличаются соответственно от обратных и дополнительных кодов удвоением значений знаковых разрядов. Знак "+" кодируется двумя нулевыми знаковыми разрядами, а знак "-"- двумя единичными разрядами. Пример А10= +9 А2= +1001 [А2]пр=[А2]обр=[А2]доп=0: 1001; [А2]мобр=[А2]мдоп=00: 1001; В10= -9 В2= -1001 [В2]доп=1: 0111 [В2]обр=1: 0110. [В2]мдоп=11: 0111 [В2]мобр=11: 0110. Целью введения модифицированных кодов являются фиксация и обнаружение перполнения разрядной сетки. В этом случае перенос из значащего разряда может исказить значение младшего знакового разряда. Значение знаковых разрядов "01" свидетельствует о положительном переполнении разрядной сетки, "10" свидетельствует об отрицательном переполнении разрядной сетки. 8. Арифметические операции в ЭВМ с фиксированной запятой. Сложение чисел в АУ ЭВМ заменятся сложением модифицированных обратных или модифицированных дополнительных кодов в сумматорах соответствующего типа. Контроль за переполнением осуществляется с помощью знаковых разрядов результатов: если они одинаковы, т.е. принимают значения 00 или 11, то результат - число нормальное, если знаковые разряды разные - произошло переполнение, причем при положительном результате в знаковых разрядах получается 01, при отрицательных - 10. В связи с тем, что крайний слева разряд всегда равен нулю для положительных чисел и единице - для отрицательных (независимо от того, было переполнение или нет), он служит для определения знака результат и потому называется знаковым разрядом. Следующий разряд совпадает со знаковым, если число по модулю меньше 1, и отличается от него, если число по модулю больше или равно 1. Этот разряд называется разрядом переполнения. По команде "сложить два числа" машина выбирает оба слагаемых из ЗУ по указанным в команде адресам. В ячейках памяти числа хранятся в прямом коде, поэтому при передаче в регистры АУ, где будет производиться операция сложения, прямой код преобразовывается в модифицированный обратный (или дополнительный) код. Результат в сумматоре АУ получается в модифицированном обратном (или дополнительном) коде, и если его надо хранить в памяти машины, то по пути в ячейку ЗУ этот код преобразовывается в прямой. Пример. Сложить числа x и у, используя сумматор с блокировкой переноса, если операция вычитания в ЭВМ сводится к сложению путем изменения знака вычитаемого на противоположный, так что вычисление разности x - у сводится к определению алгебраической суммы x + (-у). В АУ ЭВМ умножение выполняется над прямыми кодами сомножителей; знак произведения получается путем сложения знаковых разрядов множимого и множителя в специальном одноразрядном сумматоре знака по следующим правилам: 0+0 =0; 1+0 =1; 0+1=1; 1+1=0 Таким образом, знак минус, как и в алгебре, получается, если у сомножителей разные знаки, и плюс - если одинаковые. Операция деления основана на ручном способе деления двоичных чисел. Для получения очередной цифры частного из промежуточного делимого вычитается делитель и, если разность отрицательна - записывается нуль и восстанавливается промежуточное делимое, а затем происходит сдвиг вправо на один разряд (или остатка - влево) и процесс повторяется. Операция выполняется в прямом коде. При делении в том случае, если модуль делимого больше модуля делителя (и, следовательно, частное получится больше 1), произойдет переполнение разрядной сетки. В АУ вырабатывается сигнал переполнения. Знак частного получается, как и при умножении, в одноразрядном сумматоре.
|
||||
Последнее изменение этой страницы: 2021-12-07; просмотров: 49; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.218.134 (0.006 с.) |