- •1 Цель работы
- •2 Порядок выполнения работы
- •Выполнение арифметических операций компьютере
- •Особенности выполнения операций над числами с плавающей запятой
- •4. Методические указания
- •2 Порядок выполнения работы
- •3. Оформите отчет, который должен содержать:
- •4. Методические указания
- •3. Методические указания 1
- •3. Методические указания 1.
- •9.3.1. ПримерЗ
- •9.3.3. Содержание отчета
- •3. Методические указания
- •9.7.4. Контрольные вопросы
- •9.8.4. Контрольные вопросы
- •1 Цель работы
- •2 Порядок выполнения работы
- •3. Методические указания
- •Invoke GetModuleHandle,0
- •Заполнение данными.
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, а порядок должен быть целым числом. В общем виде число в форме с плавающей запятой может быть представлено так:
N=±M 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]доп = 0,а1, а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 ЦЕЛЬ РАБОТЫ
Изучить информацию о логических основах и элементах ЭВМ.