|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Представление чисел с фиксированной запятойЧисло с фиксированной запятой — естественная форма представления числа, когда положение запятой в разрядной сетке строго фиксируется. Обычно она фиксируется перед старшим или после младшего разрядов. Если запятая фиксируется перед старшим разрядом, то числа в ЭВМ представляются как правильные дроби; если после младшего — как целые числа. ЭВМ, в которых используется такая форма записи чисел, называют машинами с фиксированной запятой. На рис. 1.4, а приведена разрядная сетка ЭВМ для представления чисел с фиксированной запятой перед старшим разрядом. Разряды такой сетки нумеруются слева направо, начиная с нулевого, который называется знаковым разрядом. В этом разряде 0 соответствует плюсу, а 1 -минусу на разрядной сетке указан вес каждого разряда. Максимальное машинное число по абсолютной величине, т. е. без учета знака, равно
где n - количество разрядов числа. Минимальное, отличное от нуля машинное число
Диапазон чисел всех возможных величин в данном случае определяется неравенством: 2-n <|Х|<:(1—2 -n). Среди команд ЭВМ есть такие, когда операция с фиксированной запятой производится не только над числами, но и над адресами. В этом случае операнд интерпретируется как двоичное число без знака. Диапазон представления чисел без знака в два раза больше, чем со знаком в разряд - ной сетке ЭВМ. Работа ЭВМ в режиме с фиксированной запятой используется в основном для управления технологическими процессами и обработки информации в реальном масштабе времени. При выполнении операций над двоичными числа - ми с фиксированной запятой основным операндом в ЕС ЭВМ является 32-разрядное, в 16-разрядных мини - и микроЭВМ—16-разрядное, а в 8-разрядных микроЭВМ— 8-разрядное слово. В ЕС ЭВМ могут использоваться операнды длиной в полуслово, а произведения и делимые — длиной в двойное слово. Десятичные числа в ЭВМ представляются только в естественной форме. Десятичные числа кодируются тетрадами в коде 8-4-2-1 и используются два формата для их представления: упакованный (уплотненный) и распакованный (зонный). В упакованном формате в одном байте размещаются две десятичные цифры. Код знака размещается в правых четырех разрядах младшего байта (рис. 1.5, а). В распакованном формате младшие четыре разряда байта заняты цифрой, а остальные разряды содержат служебный символ (зону). В младший байт записываются код знака и код младшей десятичной цифры (рис. 1.5,6). Десятичные числа вводятся обычно в распакованном формате, а при выполнении операций переводятся по специальной программе в упакованный формат; при выводе из ЭВМ десятичные числа вновь преобразуются в распакованный формат по специальной программе. Упакованный формат представления десятичных чисел позволяет эффективно использовать ОП, уменьшить процесс выполнения арифметических операций и ускорить процесс обмена информацией между ОП и периферийными устройствами. Представление чисел с плавающей запятой. Оно основывается на изображении чисел в полулогарифмической форме А = ±р, ±М, соответствующей записи чисел в нормальной форме, A—d±p* (±M), где р — целое число, называемое порядком числа Л; d — основание системы счисления; М — мантисса числа А (обычно |М|<1). Фактически положение запятой в мантиссе М определяется величиной порядка р. С изменением р в большую или меньшую сторону запятая соответственно перемещается влево или вправо, т. е. «плавает» в изображении числа. Пример 1.12. Представить в форме с плавающей запятой числа (158)10 и (101101)2. Решение. 1. (158)10=103*0,158= 104*0,0158= 105*0,00158. 2.(101101)2=2110*0,'1б1101 = 2111* 0,0101101 =21000 *0,00101101. Числа, удовлетворяющие условию 1/d<=М<=1, называют нормализованными. Как видно из примера, при разных порядках числа положение запятой бывает различным; поэтому ЭВМ, допускающие такую форму записи числа, относят к машинам с плавающей запятой. В их памяти числа хранятся нормализованными. В разрядной сетке ЭВМ (рис. 1.6) фиксируются знак числа, знак порядка, порядок числа и числовое выражение мантиссы. Нормализованное представление чисел позволяет сохранять в разрядной сетке большое количество значащих цифр, что повышает точность вычислений. Обычно в ЭВМ нормализация, как при вводе чисел, так и в процессе вычислений
(после выполнения очередной операции) осуществляется автоматически. При этом мантисса сдвигается влево на не-обходимое число разрядов и производится соответствующее уменьшение порядка, т. е. производится «нормализация влево». При выполнении операции сложения или вычитания нормализованных чисел с разными порядками одно из них «нормализуется» до уравнения порядков, а сумма (или разность) опять нормализуется. В ЭВМ с плавающей запятой возможно переполнение разрядной сетки, так же как и в машине с фиксированной запятой. Например, переполнение может возникнуть при сложении нормализованных чисел с одинаковыми порядками. В этом случае появляется единица слева от запятой. Такого рода переполнение исключается сдвигом мантиссы вправо на один разряд и увеличением порядка на единицу, т. е. производится «нормализация вправо». От количества разрядов, отводимых для хранения порядка, зависит диапазон записываемых чисел, а от количества разрядов, отводимых для мантиссы,— точность записи числа. Если под цифровые разряды мантиссы отведено n,а порядка — т разрядов, то максимальное и минимальное по абсолютной величине нормализованные двоичные числа соответственно равны:
Диапазон чисел в ЭВМ с плавающей запятой определяется неравенством 2-(2m-1)*2-1<=|A|<=2(2m-1)*(1—2--n). (1.2) При достаточно больших п (обычно n >30) 1—2n=1 и неравенство (1.2) принимает вид 2-2m<=|A|<=2(2m-1). (1.3) Из этого неравенства видно, что диапазон чисел зависит в основном от порядка р. Если число превышает верхний предел неравенства (1.3), то происходит переполнение разрядной сетки и ЭВМ автоматически останавливается.
Если число выйдет за нижний предел неравенства (1.3), то оно будет соответствовать машинному нулю. Если т взято достаточно большим, то абсолютная величина А будет настолько велика, что при вычислениях для большинства задач все числа не будут выходить из диапазона чисел ЭВМ и не нужно будет прибегать к масштабным коэффициентам. Однако при этом уменьшается точность вычислений, так как увеличиваются ошибки округления и потери значности при нормализации. В целях устранения такого недостатка в современных ЭВМ предусматривается возможность перераспределения разрядов машинного слова между мантиссой и порядком программным путем. В последних моделях ЭВМ получило распространение представление чисел с плавающей запятой с недвоичным основанием системы счисления (d=8 и d=16). Использование недвоичного основания несколько уменьшает точность вычислений при заданном числе разрядов мантиссы, но позволяет увеличить диапазон представляемых чисел в ЭВМ и ускорить выполнение некоторых операций, в частности нормализации, за счет того, что сдвиг производится сразу на несколько двоичных разрядов (при d=8 на три разряда, при d=16 на четыре разряда). Вероятность получения ненормализованных чисел входе вычислений значительно уменьшается. В ЕС ЭВМ и СМ ЭВМ при представлении чисел с плавающей запятой применяется основание d=16, и порядок числа выражается через характеристику рx — смещенные порядки, представляющие собой сумму действительного порядка р числа с учетом знака и числа 64, т. е. px=p+64.
Отрицательные и положительные действительные порядки р, увеличившись на 64, оказываются смещенными на числовой оси в положительном направлении и представляются 7-разрядными двоичными числами без знака от 0 до 127 (рис. 1.7). Так как все характеристики рx являются положительными, то это упрощает выполнение некоторых действий над ними, например исключение операций над знаками порядков. В ЕС ЭВМ в операциях с плавающей запятой числа могут быть двух форматов фиксированной длины: короткий — в одно слово (рис. 1.8, а) и длинный — в двойное слово (рис. 1.8, б). Форматы различаются длиной мантиссы. Характеристики и мантиссы положительных и отрицательных чисел хранятся в ОП в прямом коде (рис. 1.8, в). В некоторых мини - и микроЭВМ предусматривается возможность обрабатывать числа с плавающей запятой - Формат слова данных с плавающей запятой для 16-байтовых ЭВМ показан на рис. 1.9, а. В целях увеличения точности представления дробной части числа и диапазона представления чисел используют для представления числа с плавающей запятой два прилегающих друг к другу 16-битовых слова (рис. 1.9, б). Младшая часть мантиссы хранится в следующем, старшем по адресу 16-битовом слове.
Для выполнения операций в ЭВМ числа кодируются специальными машинными кодами. Используются прямой, дополнительный и обратный коды, позволяющие заменить операцию непосредственного вычитания операцией сложения чисел с целью упрощения АЛУ ЭВМ. Дополнительный код. Формула для образования дополнительного кода двоичного числа А имеет вид
1.5 Пример 1.14. А=— 0,101010; А доп =10+(—0,101010)= 1,010110. Как видно из выражения (1.5), дополнительный код положительного числа полностью совпадает с изображением числа в прямом коде. Сравнивая отрицательное число А с его дополнительным кодом А доп, можно вывести следующее правило: чтобы записать отрицательное число в дополнительной коде, нужно в знаковом разряде этого числа поставить единицу, аво всех числовых разрядах нули заменить единицами, а единицы — нулями и к полученному результату прибавить единицу младшего разряда. Пример 1.15. Записать двоичное число А=- 0,0101 в дополнительном коде. Адоп = 1,1010+0,0001 = 1,1011. Чтобы преобразовать дополнительный код отрицательного числа в прямой код, необходимо в числовых разрядах этого числа заменить нули на единицы, а единицы на нули и прибавить к полученному результату единицу младшего разряда. Пример 1.16. Преобразовать дополнительный код Адоп = 1,1011 отрицательного числа в прямой код. Апр = 1,0100+0,0001 =1,0101. В дополнительном коде отрицательный нуль отсутствует. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.) |