#

7-практикa

Тема практической работы: « Прямой, обратный и дополнительный цифровой код ».

 

Цель: обучить способам получения прямого, обратного и дополнительного кода для чисел.

Оборудование:  интерактивная доска для демонстрации компьютера учителя.

Ход занятия:

Актуализация знаний

  1. В какой системе счисления хранится информация в компьютере?
  1. Переведите число 101111 2 в десятичную систему счисления.
  2. Переведите число 128 10 в двоичную и восьмеричную системы счисления.
  3. Сложите два числа в двоичной системе счисления: 101110 2 и 1101 2.

Изложение нового материала

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

Прямой код числа – это представления числа в двоичной компьютерной форме, т.е. в форме, доведенной до нужного разрядного представления. Можно доводить до 8-ми, 16-ти, 32-х, 64-х и т.д. разрядного представления.

Прямой код может использоваться в двух случаях:

  1. Для записи только неотрицательных чисел (беззнаковый способ).
  2. Для записи положительных и отрицательных чисел (знаковый способ).

Рассмотрим случай 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

Решение

  1. Переведем число, взятое по модулю, в двоичную систему счисления:

Изображение выглядит как диаграмма, линияАвтоматически созданное описание

В результате: 23 10 = 10111 2.

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

1

0

0

1

0

1

1

1

  1. Инвертируем все разряды, кроме старшего:

1

1

1

0

1

0

0

0

Ответ: 11101000

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

Дополнительный код целых положительных чисел совпадает с обратным кодом целых положительных чисел.

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

Задача 1. Получить дополнительный код числа -23 10.

Решение

Т.к. нам известен обратный код данного числа, то мы просто прибавим к нему 1:

Изображение выглядит как текст, Шрифт, снимок экрана, дизайнАвтоматически созданное описание

Ответ: 11101001.

Можно составить алгоритм получения дополнительного кода целого отрицательного числа:

  1. Взять исходное число по модулю и перевести его в двоичную систему счисления.
  2. Довести до нужно разрядности нулями, но при этом старший знаковый разряд сделать равным 1.
  3. Проинвертировать (заменить все 0 на 1, а 1 на 0, кроме старшего разряда, который отведен под знак) полученное двоичное число.
  4. Прибавить 1 к полученному двоичному числу.

 

Вопросы и задания для самоконтроля

  1. Что собой представляет прямой код числа?
  2. Какие существуют случаи отображения прямого кода числа?
  3. Что собой представляет обратный код числа?
  4. Чему равен обратный код целого положительного числа?
  5. Чему равен обратный код целого отрицательно числа?
  6. Что собой представляет дополнительный код числа?
  7. Чему равен дополнительный код целого положительного числа?
  8. Как вычисляется дополнительный код целого отрицательного числа?