Тема практической работы: « Прямой, обратный и дополнительный цифровой код ».
Цель: обучить способам получения прямого, обратного и дополнительного кода для чисел.
Оборудование: интерактивная доска для демонстрации компьютера учителя.
Ход занятия:
Актуализация знаний
Изложение нового материала
Сегодня на занятии мы научимся получать прямой, обратный и дополнительный коды чисел. Следует отметить, что все эти коды используются для работы с целыми числами, которые в компьютерном представлении нашли свое отражение в формате с фиксированной точкой (запятой)
Прямой код числа – это представления числа в двоичной компьютерной форме, т.е. в форме, доведенной до нужного разрядного представления. Можно доводить до 8-ми, 16-ти, 32-х, 64-х и т.д. разрядного представления.
Прямой код может использоваться в двух случаях:
Рассмотрим случай 1.
Для реализации первого случая нужно перевести исходное целое неотрицательное число в двоичную систему счисления. Затем дописать слева столько нулей, чтобы получить 8, 16, 32 и т.д. разрядов в зависимости от исходного числа.
Задание 1. Представьте в прямом коде два числа: а) 12 10, б) 258 10.
Решение
а) Переведем число 12 в двоичную систему счисления и получим:
В результате: 12 10 = 1100 2.
Результат перевода в двоичную систему показал нам 4 разряда, а это значит, что целесообразно довести до 8-разрядного представления. Естественно, нужно заполнять ячейки компьютерной памяти справа налево.
|
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
Полученная таблица как раз и является вариантом заполнения 8-разрядного представления.
Б) Переведем число 258 в двоичную систему счисления:
В результате: 258 10 = 100000010 2.
Получилось, что двоичное представления числа 258 занимает 9 разрядов, поэтому целесообразно доводить его до 16-разрядного представления.
Заполним ячейки памяти, как и в прошлом случае:
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
Полученная таблица как раз и является вариантом заполнения 16-разрядного представления.
Особенностью первого способа представления прямого кода числа является то, что в нем нельзя сказать положительное число или отрицательное, т.к., например, число 255 в двоичной системе счисления представляет собой 8 единиц, т.е. оно будет выглядеть следующим образом:
|
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Но возникает противоречие, которое заключается в том, что старший знаковый разряд должен показывать, какое перед нами число. Если в старшем знаковом разряде стоит 0, то считается, что перед нами положительное число, а если 1 – отрицательное. В данной ситуации 255 является положительным числом, но при использовании первого случая получается, что это число является отрицательным.
Рассмотрим случай 2.
В нем старший знаковый разряд выделяется на знаковый разряд. Если число положительное, то записывается 0, а если отрицательное, то записывается 1. Получается, что в 8-разрядном представлении 7 разрядов отводится под само число и 1 разряд – под знак. В 16-разрядном представлении 15 разрядов отводится под само число и 1 разряд – под знак и т.д.
Задание 1. Представить в прямом коде числа а) -7 10, б) 7
Решение
а) Переведем число, взятое по модулю, в двоичную систему счисления:
Заполним разрядную сетку, выделив старший знаковый разряд, равный 1:
|
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
б) Разрядная сетка для положительного числа 7 будет выглядеть подобно результату из а), но с той лишь разницей, что первый знаковый разряд будет равен 0:
|
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
Обратный код числа используется для того, чтобы получить результат вычитания при сложении. Для целых положительных двоичных чисел обратный код равен прямому. Для отрицательных чисел обратный код получается после процедуры инвертирования. Инвертирование означает преобразование нулей в единицы, а единиц – в нули (кроме разряда, отвечающего за знак).
Задача 1. Получить обратный код числа -23 10
Решение
В результате: 23 10 = 10111 2.
|
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
|
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
Ответ: 11101000
Дополнительный код – это наиболее распространенный способ представления в памяти компьютера целых отрицательных чисел. Он позволяет не только заменить операцию вычитания на операцию сложения, но и сделать операции сложения и вычитания одинаковыми как для знаковых, так и для беззнаковых чисел.
Дополнительный код целых положительных чисел совпадает с обратным кодом целых положительных чисел.
Дополнительный код целых отрицательных чисел находится прибавлением 1 к обратному коду отрицательного числа.
Задача 1. Получить дополнительный код числа -23 10.
Решение
Т.к. нам известен обратный код данного числа, то мы просто прибавим к нему 1:
Ответ: 11101001.
Можно составить алгоритм получения дополнительного кода целого отрицательного числа:
Вопросы и задания для самоконтроля