Популярные услуги

- Коды - прямой, обратный, дополнительный

2021-03-09СтудИзба

Лекция №5

Коды: прямой, обратный, дополнительный.

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

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

ПРИМЕРЫ.   Число 110=12:                            Число 12710=11111112

01111111
 Знак числа «+»




                                                                                               

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

1. Прямой код. В знаковый ряд помещается цифра 1, а в разряды цифровой части числа – двоичный код его абсолютной величины.

ПРИМЕРЫ.   Прямой код числа -1:              Прямой код числа -127:

11111111
 Знак числа «-»




1

0

0

0

0

0

0

1

                          Знак числа «-»


2. Обратный код получается инвентированием всех цифр двоичного кода абсолютной величины числа, включая разряд знака: нули заменяют единицами, а единицы – нулями.

ПРИМЕРЫ.   Число: -1.                               Число: -127.

Код модуля числа:   0 0000001.                    Код модуля числа:   0 1111111

Обратный код числа: 1 1111110.                  Обратный код числа: 1 0000000

10000000





1

1

1

1

1

1

1

0

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

ПРИМЕРЫ.   Дополнительный код числа-1:    Дополнительный код числа-127

10000001





1

1

1

1

1

1

1

1

Обычно отрицательные десятичные числа при вводе в машину автоматически преобразуются в обратный или дополнительный двоичный код и в таком виде хранятся, перемещаются и участвуют в операциях. При вводе таких чисел из машины происходит обратное преобразование в отрицательные десятичные числа.

Операция сложения чисел в прямом, обратном и дополнительном кодах выполняется на двоичных сумматорах соответствующего кода.

         АРИФМЕТИЧЕСКИЕ ДЕЙСТВИЯ НАД ЦЕЛЫМИ ЧИСЛАМИ

Сложение и вычитание. В большинстве компьютеров операция вычитания не используется. Вместо неё производится сложение уменьшаемого  с обратным или дополнительным кодом вычитаемого. Это позволяет существенно упростить конструкцию АЛУ.

При сложении обратных кодов чисел  А и B имеет место четыре основных и два особых случая. Рассмотрим их.

Случай 1. А и В положительные. При суммировании складываются все разряды, включая разряд знака. Так как знаковые разряды положительных слагаемых равны нулю, разряд знака суммы тоже равен нулю.

Десятичная запись:                   Двоичные коды:

0 0000011
 +
 0 0000111
 0 0001010 



3

        +

          7

         10

Получен правильный результат.

Случай 2. А положительное, В отрицательное и по абсолютной величине больше, чем А . Приведем пример.

  Десятичная запись                 Двоичные коды

0 0000011 (прямой код числа 3)
 +
 1 1110101 (обратный код числа 10)
 1 1111000 (обратный код числа 7) 
      3

+                                                   

  -10

    -7

Получен правильный результат в обратном коде. При переводе в прямой код биты цифровой части результата инвертируются: 1 0000111=-710

Случай 3. А положительное, В отрицательное и по абсолютной величине меньше, чем А . Приведем пример.

Десятичная запись                 Двоичные коды

0 0001010 (прямой код числа 10)
 +
 1 1111100 (обратный код числа 3)
 10 0000110 (прямой код числа 6) 
    10

+

    -3

     7

Компьютер исправляет полученный первоначально неправильный результат (6 вместо 7) переносом единицы из знакового разряда в младший разряд суммы.

Случай 4. А и В отрицательные. Приведем пример.

Десятичная запись                 Двоичные коды

1 1111100 (обратный код числа 3)
 +
 1 1111000 (обратный код числа 7)
 11 1110100 (обратный код числа 11) 
      -3

+

      -7

    -10

Полученный первоначальный неправильны результат (обратный код числа -1110) вместо обратного кода числа -1010) компьютер исправляет переносом единицы из знакового разряда в младший разряд суммы. (0 11110101) При переводе результата в прямой код биты цифровой части числа инвертируются: 1 0001010=  -1010.

При сложении может возникнуть ситуация, когда старшие разряды результата операции не помещаются в отведенной для него области памяти. Такая ситуация называется переполнением разрядной сетки формата числа. Для обнаружения переполнения и оповещения о возникшей ошибке в компьютере используются специальные средства.  Ниже приведены два возможных случая переполнения.

Случай 5. А и В положительные, сумма  А и В больше либо равна 2n-1, где n – количество разрядов количество разрядов для однобайтового формата n=8, 2n-1=2-7=128). Приведем пример.

Десятичная запись:                             Двоичные коды:

 65                                                         0 1000001

+                                                       +   0 1100001

 97                                                         1 0100010     Переполнение

162

Семи разрядов цифровой части числового формата недостаточно для размещения восьмиразрядной суммы (16210=101000102), поэтому старший разряд суммы оказывается в знаковом разряде. Это вызывает несовпадение знака суммы и знаков  слагаемых, что является свидетельством переполнения  разрядной сетки.

Случай 6. А и В отрицательные, сумма  абсолютных величин А и В больше, либо равна 2n-1. Приведем пример.

Десятичная запись:                             Двоичные коды:

 -63                                                        1  10000000   Обратный код числа -63

  +                                                             +

 -95                                                        1   0100000     Обратный код числа -95

-158                                                        1100000     Переполнение

                                                                              +1

Здесь знак суммы тоже не совпадает со знаками слагаемых, что свидетельствует о переполнении разрядной сетки.

Все рассмотренные случаи имеют место и при сложении дополнительных кодов чисел.

Случай 1. А и В положительные. Здесь нет отличия от случая 1, рассмотренного для обратного кода.

Случай 2. А положительное, В отрицательное и по абсолютной величине больше, чем А. Приведем пример.

Десятичная запись:              Двоичные коды:

3                                              0 0000011

 +                                                +1 1110110   Дополнительный код числа -10

   -10                                             1 1111001    Дополнительный код числа -7

  -7

Получен правильный результат в дополнительном коде. При переводе в прямой код биты цифровой части результата инвентируются и к младшему разряду прибавляется единица: 1  0000110+1  0000111=-710.

Случай 3. А положительное, В отрицательное и по абсолютной величине меньше, чем А. Приведем пример.

Десятичная запись:              Двоичные коды:

10                                            00001010

 +                                                +11111101   Дополнительный код числа -3

      -3                                            00000111          

  7                                                                      

                                                                          перенос отбрасывается

Получен правильный результат. Единицу переноса из знакового разряда компьютер отбрасывает.

Случай 4. А и В отрицательные и по абсолютной величине меньше, чем А. Приведем пример.

Десятичная запись:              Двоичные коды:

-3                                             11111101   Дополнительный код числа -3

 +                                                +11111001   Дополнительный код числа -7

     -7                                             11110110   Дополнительный код числа -10   

-10                                                                      

                                                                         перенос отбрасывается

Получен правильный результат в дополнительном коде. Единицу переноса из знакового разряда компьютер отбрасывает.

Случаи переполнения для дополнительных кодов рассматриваются по аналогии со случаями 5 и 6 для обратных кодов.

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

· Умножение и деление. Во многих компьютерах умножение производится как последовательность сложений и сдвигов. Для этого в АЛУ имеется регистр, называемый накапливающим сумматором, который до начала выполнения операции содержит число «нуль».в процессе выполнения операции в нем поочередно размещаются множимое и результаты промежуточных сложений, а по завершении операции – окончательный результат.

Другой регистр АЛУ, участвующий в выполнении этой операции, вначале содержит множитель. Затем по мере выполнения сложений содержащееся в нем число уменьшается, пока не достигнет нулевого значения.

Умножим 1100112 на 1011012.

Пример. Накапливающий сумматор:           Множитель:

0 0 0 0 0 0 0 0 0 0 0 0                                        101101

  +                   1 1 0 0 1 1

                  1 1 0 0 1 1                                         101100

  +

            1 1 0 0 1 1                                                  Сдвиг на две позиции влево

Люди также интересуются этой лекцией: Горение газа.

            1 1 1 1 1 1 1 1                                          101000

   +         1 1 0 0 1 1_____        

            1 0 1 0 0 1 0 1 1 1                                          100000

   +    1 1 0 0 1 1                                                           Сдвиг на две позиции влево

1  0 0 0 1 1 1 1 0 1 1 1                                           000000

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

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5184
Авторов
на СтудИзбе
436
Средний доход
с одного платного файла
Обучение Подробнее