[В эфире!] Вебинар «Здоровьесбережение на уроках: пандемия COVID-19» К трансляции→
Конкурс разработок «Пять с плюсом» декабрь 2020
Добавляйте свои материалы в библиотеку и получайте ценные подарки
Конкурс проводится с 1 декабря по 31 декабря

Лекция на тему "Машинные коды двоичного числа"

Лекция по дисциплине Цифровая схемотехника содержащая краткое изложение материала, а так же примеры по операция сложения положительного числа и отрицательного числа, представленного в прямом и дополнительном коде на тему Машинные коды двоичного числа
Просмотр
содержимого документа

Машинные коды двоичного числа

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

Для представления чисел со знаком в ЭВМ применяют прямой, обратный и дополнительный коды.

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

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

Прямой код

Прямой код – это представление числа в двоичной системе счисления, при котором первый (старший) разряд отводится под знак числа. Если число положительное, то в левый разряд записывается 0; если число отрицательное, то в левый разряд записывается 1.

Таким образом, в двоичной системе счисления, используя прямой код, в восьмиразрядной ячейке (байте) можно записать семиразрядное число. Например:

        0 0001101–положительное число                                                   1 0001101 – отрицательное число

Количество значений, которые можно поместить в семиразрядной ячейке со знаком в дополнительном разряде равно 256. Это совпадает с количеством значений, которые можно поместить в восьмиразрядную ячейку без указания знака. Однако диапазон значений уже другой, ему принадлежат значения от -128 до 127 включительно (при переводе в десятичную систему счисления).

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

Обратный код

В обратном коде (ОК), также как и в прямом коде, для обозначения знака положительного числа используется бит, равный нулю, и знака отрицательного – единице.

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

 

 

 

 

 

 

Пример. Записать обратный код чисел https://studizba.com/uploads/lectures/informatika-i-programmirovanie/informacionnye-osnovy-evm/files/0-mashinnye-kody-dvoichnogo-chisla.png и https://studizba.com/uploads/lectures/informatika-i-programmirovanie/informacionnye-osnovy-evm/files/1-mashinnye-kody-dvoichnogo-chisla.png

Решение:

     https://studizba.com/uploads/lectures/informatika-i-programmirovanie/informacionnye-osnovy-evm/files/2-mashinnye-kody-dvoichnogo-chisla.png              https://studizba.com/uploads/lectures/informatika-i-programmirovanie/informacionnye-osnovy-evm/files/3-mashinnye-kody-dvoichnogo-chisla.png               https://studizba.com/uploads/lectures/informatika-i-programmirovanie/informacionnye-osnovy-evm/files/11-mashinnye-kody-dvoichnogo-chisla.png

                                               https://studizba.com/uploads/lectures/informatika-i-programmirovanie/informacionnye-osnovy-evm/files/4-mashinnye-kody-dvoichnogo-chisla.png                https://studizba.com/uploads/lectures/informatika-i-programmirovanie/informacionnye-osnovy-evm/files/13-mashinnye-kody-dvoichnogo-chisla.png

Работа с обратным кодом вызывает ряд трудностей. В частности, возникают два нуля: положительный и отрицательный, т.е. в прямом коде (в котором представлены положительные числа) имеет место https://studizba.com/uploads/lectures/informatika-i-programmirovanie/informacionnye-osnovy-evm/files/5-mashinnye-kody-dvoichnogo-chisla.png, а в обратном коде (в котором представлены отрицательные числа) https://studizba.com/uploads/lectures/informatika-i-programmirovanie/informacionnye-osnovy-evm/files/15-mashinnye-kody-dvoichnogo-chisla.png.

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

Дополнительный код

В дополнительном коде, также как и прямом, первый разряд отводится для представления знака числа. Прямой код используется для представления положительных чисел, а дополнительный – для представления отрицательных. Поэтому, если в первом разряде находится 1, то мы имеем дело с дополнительным кодом и с отрицательным числом.

Все остальные разряды числа в дополнительном коде сначала инвертируются, т.е. заменяются противоположными (0 на 1, а 1 на 0). Например, если 1 0001100 – это прямой код числа, то при формировании его дополнительного кода, сначала надо заменить нули на единицы, а единицы на нули, кроме первого разряда. Получаем 1 1110011. Но это еще не окончательный вид дополнительного кода числа.

Далее следует прибавить единицу к получившемуся инверсией числу:

1 1110011 + 1 = 1 1110100

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

Причина, по которой используется дополнительный код числа для представления отрицательных чисел, связана с тем, что так проще выполнять математические операции. Например, у нас два числа, представленных в прямом коде. Одно число положительное, другое – отрицательное и эти числа нужно сложить. Однако просто сложить их нельзя. Сначала компьютер должен определить, что это за числа. Выяснив, что одно число отрицательное, ему следует заменить операцию сложения операцией вычитания. Потом, машина должна определить, какое число больше по модулю, чтобы выяснить знак результата и определиться с тем, что из чего вычитать. В итоге, получается сложный алгоритм. Куда проще складывать числа, если отрицательные преобразованы в дополнительный код. Это можно увидеть на примерах ниже.

 

 

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

  1. Прямой код числа 5: 0 000 0101
    Прямой код числа -7: 1 000 0111
  2. Два исходных числа сравниваются. В разряд знака результата записывается знак большего исходного числа.
  3. Если числа имеют разные знаки, то вместо операции сложения используется операция вычитания из большего по модулю значения меньшего. При этом первый (знаковый) разряд в операции не участвует.
  4. _ 000 0111
  5.   000 0101
  6. -------------
  7.   000 0010
  8. После выполнения операции учитывается первый разряд. Результат операции 1 000 0010, или -210.

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

  1. Прямой код числа 5: 0 000 0101
    Прямой код числа -7: 1 000 0111
  2. Формирование дополнительного кода числа -7.
    Прямой код : 1 000 0111
    Инверсия : 1 111 1000
    Добавление единицы: 1 111 1001
  3. Операция сложения.
  4.   0 000 0101
  5. + 1 111 1001
  6.   --------------
  7.   1 111 1110
  8. Проверка результата путем преобразования к прямому коду.
    Дополнительный код: 1 111 1110
    Вычитание единицы : 1 111 1101
    Инверсия : 1 000 0010 (или -210)

 

Информация о публикации
Загружено: 17 марта
Просмотров: 2680
Скачиваний: 7
Скупова Олеся Владимировна
Информатика, Прочее, Уроки
Скачать материал