Лабораторная работа №3. Основы машинной арифметики
1. Запишите числа X и Y в прямом, обратном и дополнительном кодах. Выполните сложение в обратном и дополнительном кодах. Результат переведите в прямой код. Полученный результат проверьте, используя правила двоичной арифметики. 2. Измените число Y, добавив в конец числа две единицы «11». Сложите полученные числа в модифицированном обратном и модифицированном дополнительном кодах. Результат переведите в прямой код. Выполните проверку сложения, используя правила двоичной арифметики.
Контрольные вопросы 1. Что понимают под прямым кодом числа? 2. Как образуется обратный код целого положительного числа? 3. Как образуется обратный код целого отрицательного числа? 4. Каков алгоритм сложения чисел в прямом коде? 5. Каков алгоритм сложения чисел в обратном коде? 6. Чем характеризуется модифицированный обратный код? [I] В примерах этой лабораторной работы запятая отделяет знаковый разряд от числа. Лабораторная работа №3. Основы машинной арифметики
Цель работы. Изучить основы машинной арифметики, представления чисел в прямом, обратном и дополнительном кодах и арифметических операций над ними. Любые данные (числа, текст, команды программ и др.) в памяти компьютера представлены двоичными кодами, которые представляют собой совокупность битов. В частности, двоичный код, содержащий 8 бит (говорят: «8 разрядов»), называется байтом. Для хранения данных используют следующие форматы двоичного кода: 8-разрядный (байт), 16-разрядный (полуслово), 32-разрядный (слово) и 64-разрядный (двойное слово). Для выполнения арифметических операций используют специальные коды представления чисел, которые позволяют свести операцию вычитания чисел к арифметическому сложению этих кодов. Различают прямой, обратный и дополнительный коды. Прямой код используется для представления отрицательных чисел в памяти компьютера, а также при выполнении операций умножения и деления. Обратный и дополнительный коды применяются для выполнения операции вычитания, которую заменяют операцией сложения чисел с разными знаками: а - b = а + (-b). В коде числа каждому разряду соответствует определенный элемент разрядной сетки. Для записи знака числа в разрядной сетке имеется строго определенный фиксированный разряд, обычно это крайний разряд разрядной сетки. Замечание. Условимся при записи кода знаковый разряд числа отделять запятой от других разрядов. Если формат числа не указан, будем считать, что число 8-разрядное (байт).
Задание 1. Запишите следующие числа в прямом, обратном и дополнительном кодах. а) 1101011; б) -101011; в) -101101; г) -1100111.
Методические указания. Прямой код целого числа. Под прямым кодом двоичного числа понимают запись самого числа. Значение знакового разряда для положительных чисел определяют равным нулю (0), для отрицательных чисел — единице (1). Например, если для записи кода используется байт, то[I]:
Крайний левый разряд в прямом коде нами отведен под знак числа, остальные разряды — под само число. Число располагаем в разрядной сетке так, чтобы цифра младшего разряда числа занимала крайнюю правую ячейку. Знаковый разряд —> | 0, | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
Обратный код целого числа. Обратный код целого положительного числа совпадает с его прямым кодом. Для отрицательного числа обратный код строится заменой каждого незнакового байта его представления в прямом коде на противоположный (заменим 1 на 0, 0 на 1), знаковый разряд не изменяется.
Пример.
Дополнительный код целого числа. Дополнительный код положительного числа совпадает с его прямым кодом. Для отрицательного числа дополнительный код образуется путем получения обратного кода и добавлением к младшему разряду единицы. Пример.
Задание 2. Переведите числа X и Y в прямой, обратный и дополнительный коды. Выполните сложение в обратном и дополнительном кодах. Результат переведите в прямой код. Полученный результат проверьте, используя правила двоичной арифметики.
а) X = -11010; б) X =-11101; в) X =111010; Y= 100111; Y = -10011; Y = -101111;
г) Х = -101110; д) Х= 1101011; е) X =-11011; Y = -11101; Y = -1001110; Y =-10111.
Методические указания. При сложении чисел в знаковом разряде могут появиться две цифры, вторую единицу от запятой называют единицей переноса. При сложении чисел в дополнительном коде возникающая единица переноса в знаковом разряде отбрасывается. При сложении чисел в обратном коде возникающая единица переноса в знаковом разряде прибавляется к младшему разряду суммы кодов. Если результат арифметических действий является кодом отрицательного числа, необходимо преобразовать его в прямой код. При этом обратный код преобразуется в прямой заменой цифр во всех разрядах, кроме знакового, на противоположные. Дополнительный код преобразуется в прямой так же, как и обратный, с последующим прибавлением единицы к младшему разряду.
|