- •Лабораторная работа № 5
- •2.2. Перевод чисел из одной системы в другую
- •Примеры:
- •2.3. Арифметические действия над числами в двоичной, восьмиричной и шестнадцатиричной системах счисления
- •Шестнадцатиричная система счисления. Таблица для сложения и вычитания чисел в шестнадцатиричной системе счисления используется также, как и таблицы для двоичной и восьмиричной систем счисления.
- •Пример:
- •2.4. Представление чисел в эвм
- •2.5. Операции над числами с плавающей запятой
- •3. Варианты индивидуальных заданий
- •4. Контрольные вопросы
2.5. Операции над числами с плавающей запятой
Сложение чисел с плавающей запятой: С = А + В.
А = 34,75 (10) =100010,11(2) ;
В = 18,125 (10) = 10010,001 (2) .
Операция выполняется в несколько этапов:
1) Нормализация прибавлений или запись с плавающей запятой А=М*q p:
А = 0.10001011*10110; В = 0.10010001*10101.
2) Выравнивание порядков слагаемых в сторону большего порядка. Увеличиваем порядок р в на одну единицу и мантиссу М в смещаем вправо на один разряд.
М в = 0.010010001; р в =110.
3) Выполняем операцию сложения. С = А + В
А = 0.100010110 10110
+ В = 0.010010001 10110
С = 0.110100111 10110
4) Нормализуем результат, если это нужно. В данном случае это не нужно потому, что старший разряд мантиссы равняется 1.
Результат: С = 0.110100111*10110(2) ; С = =52,875 (10)
Умножение с младших разрядов мантиссы:
1101
х1011
1101
+1101
1101
10001111
С = 10001111(2) = 1*27+1*2 3 +1*2 2 +2+1=128+8+4+3 =143 (10).
2) Умножение со старших разрядов мантиссы:
1101
1011
1101
+ 1101
1101
10001111
С = 10001111(2) = 1*27+1*2 3 +1*2 2 +2+1=128+8+4+3 =143 (10).
При умножении для мантиссы нужно в два раза больше разрядов для результатов умножения, чем при сложении. Порядки при умножении складываются, а знаки складываются по модулю 2.
Операция деления двоичных чисел в ЭВМ выполняется методом сложения делимого с дополнительным кодом делителя, а потом с остатком и восстановлением остатков, если остаток стал отрицательным числом, или без восстановления отрицательных остатков. Рассмотрим на примере процесс деления без восстановления остатков.
А = 25 (10) = 11001 (2); В = 5 (10) = 101 (2). С=А:В =25:5 =11001:101.
1) Смещаем делитель таким образом, чтобы в старшем разряде была цифра большая нуля.
В = 00.10100 n=2 (сдвиг делителя влево на два разряда).
При смещении на n разрядов влево, результат будет иметь (n+1) разрядов целых цифр до запятой.
2) Рассмотрим процесс деления мантисс в модифицированном коде:
00.11001 |00.10100 [B] д..к. = 11.01100
+ 11.01100 1 0 1
100.00101 1 переноса из знакового разряда отбрасывается
00.01010 Смещаем остаток влево на 1 разряд
+ 11.01100
11.10110
00.10100 Деление выполняется
+ 11.01100 без восстановления остатков
100.00000
Количество целых цифр результата равно 3.
При делении чисел с плавающей запятой порядки чисел вычитаются с помощью сложения в дополнительном коде: [p] д..к. =[p] д.к.-[p] д..к., а знак числа – сложением по модулю 2, как это выполнялось при умножении.
3. Варианты индивидуальных заданий
3.1.Составить первое число из следующей последовательности цифр:
- число собственной даты рождения;
- номер месяца собственной даты рождения;
- последние две цифры года собственной даты рождения.
Например:
дата рождения - 22 мая 1984 года
получим число - 220584
Второе число - 529 (для всех вариантов).
3.2. Перевести полученные два числа в двоичную, восьмиричную, шестнадцатиричную системы счисления.
3.3. Получить сумму этих двух чисел в двоичной, восьмиричной, шестнадцатиричной и десятичной системах счисления.
3.4. Результаты суммирования чисел в двоичной, восьмиричной, шестнадцатиричной системах перевести в десятичную систему счисления.
Проверить правильность проведенных действий, сравнивая полученные результаты с суммой, полученной при сложении чисел в десятичной системе счисления.
3.5. Выполнить операции суммирования, вычитания, умножения и деления чисел с использованием прямого, обратного и дополнительного кодов.
Проверить правильность результатов, сравнивая их с полученными при выполнении тех же действий в десятичной системе счисления.
3.6. Получить число, целой частью которого является первое число, а дробной – второе число. Представить полученное число в формах с фиксированной и плавающей запятой.