Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Арх_Пр_методич_пособ.docx
Скачиваний:
43
Добавлен:
19.05.2015
Размер:
2.79 Mб
Скачать

4. Методические указания

Представление чисел в ЭВМ

В ЭВМ применяются две формы представления чисел:

  • естественная форма, или форма с фиксированной запятой(точкой) - ФЗ (ФТ);

  • нормальная форма, или форма с плавающей запятой (точкой) - ПЗ (ПТ).

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

Например, пусть числа представлены в десятичной системе счисления и имеют пять разрядов в целой части числа (до запятой) и пять — в дробной части (после запятой). Числа, записанные в такую разрядную сетку, имеют вид:

+00721.35500;

+00000.00328;

-10301.20260.

Эта форма наиболее проста, естественна, но имеет небольшой диапазон представления чисел.

Диапазон значащих чисел N в системе счисления с основа­нием Р при наличии т разрядов в целой части и s разрядов в дробной части числа (без учета знака числа) будет таким:

P-s<N<Pm- Р-s

Например, при Р=2 , m= 10 и s = 6 числа изменяются в диапазоне 0,015 <N< 1024. Если в результате операции получится число, выходящее за допустимые пределы, произойдет переполнение разрядной сетки, и дальнейшие вычисления теряют смысл. В современных компьютерах естественная форма представления используется как вспомогательная и только для целых чисел.

В памяти ЭВМ числа с фиксированной точкой хранятся в трех форматах:

  • полуслово — это обычно 16 бит или 2 байта;

  • слово — 32 бита или 4 байта;

  • двойное слово — 64 бита или 8 байтов. Отрицательные числа с ФТ записываются в разрядную сетку в дополнительных кодах, которые образуются прибавлением единицы к младшему разряду обратного кода. Обратный код получается заменой единиц на нули, а нулей на единицы в прямом двоичном коде.

Плавающая запятая (точка). В форме представления с плавающей запятой (точкой) число изображается в виде двух групп цифр:

  • мантисса;

  • порядок.

При этом абсолютная величина мантиссы должна быть меньше 1, а порядок должен быть целым числом. В общем виде число в форме с плавающей запятой может быть представлено так:

NM x P±r,

где М — мантисса числа (|М| < 1);

r — порядок числа (целое число);

Р — основание системы счисления.

Например, приведенные ранее числа в нормальной форме запишутся следующим образом:

+0,721355 х 103;

+0,328 х 10-3;

-0,103012026 х 105.

Нормальная форма представления обеспечивает большой диапазон отображения чисел и является основной в современных компьютерах. Так, диапазон значащих чисел в системе счисления с основанием Р при наличии т разрядов у мантиссы и s разрядов у порядка (без учета знаковых разрядов порядка и мантиссы) будет:

Р х p-iP--\) <М<(\-Р~т

При Р=2 , m= 10 и s = 6 и = 22 и s= 10 диапазон чисел прости­рается примерно от 10-300 до 10300. Для сравнения отметим, что количество секунд, которые прошли с момента образования планет Солнечной системы, составляет около 1018.

Следует заметить, что все числа с плавающей запятой хранятся в машине в так называемом нормализованном виде.

Нормализованным называют такое число, в старшем разряде мантиссы которого стоит единица (следовательно, для нормализованных двоичных чисел 0,5 < \М\ < 1).

Нормализованные, т. е. приведенные к правильной дроби,; числа:

10,3510 = 0,103510 х 102;

0,000072458 = 0,72458 х 8-4;

F5C,9B16 = 0,F5C9B16xl63.

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

• прямой;

• обратный

• дополнительный.

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

Знак числа обычно кодируется двоичной цифрой, при этом:

• код 0 означает знак + (плюс);

• код 1 означает знак - (минус). Прямой код числа N обозначим [Nлр]. Пусть N= а1, а2, а3, ..., аm, тогда:

. при N> 0 [N]np = 0, а1, а2, а3, ..., аm,

при N< 0 [Nnp = 1, а1, а2, а3, ..., аm,,

• при N = 0 имеет место неоднозначность [0]пр = 0, 0... = 1, 0...

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

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

Операцию вычитания в этом коде нельзя заменить операци­ей сложения с отрицательным числом, поэтому возникают слож­ности, связанные с займом значений из старших разрядов уменьшаемого числа. В связи с этим прямой код в ЭВМ почти не применяется.

Обратный код числа N обозначим [N]о6р.

Пусть N = а1, а2, а3, ..., аm, и а~ обозначает инверсию а, т. е. если а = 1, то а = 0, и наоборот. Тогда:

. при N> 0 [N]обр = 0, а1, а2, а3, ..., аm,

. при N< 0 [N]o6p = 1, а1~, а2, а3, ..., аm,

• при N=0 имеет место неоднозначность [0] o6p = 0,00...0 =

= 1,11…1

Для того чтобы получить обратный код отрицательного чис­ла, необходимо все цифры этого числа инвертировать, т. е. в знаковом разряде поставить 1, во всех значащих разрядах нули заменить единицами, а единицы — нулями.

Например,

для N = 1011 [N]obp = 0,1011;

для N= —1011 [N] = 1,1011. [N]o6p = 1,0100.

Дополнительный код числа Nобозначим [N]доп.

Пусть, как и выше, N= а1, а2, а3, ..., аm и а обозначает вели­чину, обратную а (инверсию а), т. е. если а= 1, то а = 0, и наоборот. Тогда:

. при N> 0 [N]доп = 01, а2, а3, ..., аm

- при N< 0 [N]доп = 1, а1, а2, а3, ..., аm + 0.00...1.

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

Например,

дляN= 1011 [N]доп = 0,1011;

для N =-1100 [N]доп = 1,0100;

для N =-11010100 [N]доп = 1,00101100;

для N=-0000 [N]доп = 10,0000 = 0,0000 (1 исчезает). Неодно­значности в изображении 0 нет.

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

Выполнение арифметических операций компьютере

Правила выполнения арифметических операций в двоичной системе счисления

аналогичны правилам операций в десятичной системе счисления.

Пример:

Сложение

101110 + 001011

Вычитание

101110 001011

Результат

111001

Результат

100011

У'множение

101101

X 101

101101 000000 101101

Деление

101101 /101 01 010 0101

'Результат произведение)

11100001

Результат (частное)

1001

Особенности выполнения операций над числами с плавающей запятой

Следует кратко остановиться на выполнении операции над числами с плаваю­щей запятой (точкой). При сложении (вычитании) чисел с одинаковыми поряд­ками их мантиссы складываются (вычитаются), а результату присваивается по­рядок, общий для исходных чисел. Если порядки исходных чисел разные, то сначала эти порядки выравниваются (число с меньшим порядком приводится к числу с большим порядком), затем выполняется операция сложения (вычи­тания) порядков. Если при выполнении операции сложения мантисс возникает переполнение, то сумма мантисс сдвигается вправо на один разряд, а порядок суммы увеличивается на 1.

При умножении чисел с плавающей запятой их мантиссы перемножаются, а по­рядки складываются.

При делении чисел с плавающей запятой мантисса делимого делится на мантис­су делителя, а для получения порядка частного из порядка делимого вычитается порядок делителя. При этом если мантисса делимого больше мантиссы делите­ля, то мантисса частного окажется больше 1 (происходит переполнение) и ее следует сдвинуть на один разряд вправо, одновременно увеличив на единицу по­рядок частного.

Выполнение арифметических операций над числами, представленными в дополнительных кодах

При выполнении арифметических операций в компьютере обычно применяются не простые, а модифицированные коды. Модифицированный код отличается от простого использованием для изображения знака числа двух разрядов. Второй знаковый разряд служит для автоматического обнаружения ситуации пере­полнения разрядной сетки: при отсутствии переполнения оба знаковых разряда должны иметь одинаковые цифры (нули или единицы), а при переполнении раз­рядной сетки цифры в них будут разные. При переполнении результат сдвигается вправо на один разряд.

Сложение производится по обычным правилам сложения двоичных чисел: едини­ца переноса, возникающая из старшего знакового разряда, просто отбрасывается. Примеры сложения (запятая условно отделяет знаковый разряд от самого числа):

Х= -1101; F= 1001. Результат сложения: 11,0011 + 00,1001 = 11,1100 (или -0100);

Х = 1101; Y" 1001. Результат сложения: 00,1101 + 00,1001 = 01,0110 (переполнение, после сдвига вправо получим 00,10110, или +10110);

Q Х= 1101; F= -1001. Результат сложения: 00,1101 + 11,0111 = 100,0100 (или 00,0100);

Х= -1101; Y = -1001. Результат сложения: 11,0011 + 11,0111 = 10,1010

(переполнение, после сдвига вправо получим 11,01010, или -10110)

ПРАКТИЧЕСКАЯ РАБОТА №5. Логические основы и элементы ЭВМ

1 ЦЕЛЬ РАБОТЫ

Изучить информацию о логических основах и элементах ЭВМ.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]