Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AIKiI-lektsii_studentam_1.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
5.87 Mб
Скачать

7.2 Кодирование информации

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

Прямой код. Изображение двоичного числа Х в прямом коде [X]пр основано на представлении его абсолютного значения с закодированным знаком. В общем случае формула для образования прямого кода дробного двоичного числа Х имеет вид:

[х]пр={

Прямой код [X]пр положительного числа Х в закодированном виде полностью совпадает с записью самого числа: если Х=+0. x1x2…xm, то [X]=0. x1x2…xm. Прямой код [X]пр отрицательного числа – Х в закодированном виде имеет такую запись: если Х=-0. x1x2…xm, то [X]пр =1. x1x2…xm.

Пример. Представить числа х=+0,11010 и Х=-0,01010 в прямом коде [X]пр = 0,11010; [X]пр = 1,01010

Следует отметить, что изображение нуля в прямом коде неоднозначно, т.е. для тривиального равенства 0=+0=-0, [+0]пр =0,00..00; [-0]пр =1,00..00. Таким образом, в прямом коде нуль может иметь два представления, которые соответственно называются положительным и отрицательным нулем.

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

Обратный код. Для упрощения структуры машины отрицательные дроби, представленные в двоичной системе счисления, кодируются в виде дополнений до 2 или до 2-2m (m – количество разрядов, 2- основание двоичной системы счисления). Код, образованный до 2, называют дополнительным, а код, образованный дополнением до 2-2m, - обратным. Обратный код числа Х обозначается [X]обр

Обратный код положительного числа совпадает с его прямым кодом: если х>0, то [X]ОБР = [X]ОБР =X. Обратный код отрицательного числа образуется следующим образом:

  1. в знаковом разряде записывается единица;

  2. в цифровых разрядах единицы заменяются нулями, а нули –единицами.

Так, обратный код положительного числа Х=+0,10110 равен этому числу [X]ОБР =0,10110, а обратный код отрицательного числа Х=-0,01001 равен [X]ОБР =1,10110.

Таким образом, формула для образования обратного кода дробного двоичного числа Х имеет вид

[Х]обр={

В обратном коде возникают два представления нуля: положительный и отрицательный:

[+0]ОБР=[+0.00…0]ОБР=0.00…0;

[-0]ОБР=[-0.00…0]ОБР=10.00…0-0.00…1=1.111…11;

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

Пример. Сложить числа х=+0,101 и у=-0,001 в обратных кодах:

[Х]ОБР+[У]ОБР=0.101+1.110=10.011

[У]ОБР=1.110

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

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

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

[X]ОБР={

где n - число разрядов.

Дополнительный код. Дополнительный код положительного числа совпадает с его прямым кодом, т.е. [Х]ДОП=[Х]ПР=Х. Дополнительный код отрицательного двоичного числа образуется следующим образом:

  1. в знаковом разряде поставить единицу;

  2. во всех цифровых разрядах заменить единицы нулями, а нули – единицами;

  3. к младшему разряду числа прибавить единицу.

Так, дополнительный код положительного числа Х=+0,10010 равен этому числу, т.е. [X]ДОП=0,10010; дополнительный код отрицательного числа Х=-0,0110 будет [X]ДОП=1,1001+0,0001 или отрицательного числа Х=-011001 будет [X]ДОП=1,00110+0,00001=1,00111.

Таким образом, формула для образования дополнительного кода дробного двоичного числа будет иметь вид

[Х]ДОП={

Аналогичным способом можно получить формулу для образования дополнительного кода целого числа.

[Х]ДОП={

где n – число разрядов.

Для получения изображения нуля выполняются следующие простейшие преобразования:

[+0]ДОП=[0.00…0]ДОП=0;

[-0]ДОП=[-0.00…0]ДОП=10.00…0+X=10.00…0+0.00…0=10.00…0,

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

[+0]ДОП=[-0]ДОП=0.00…0.

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

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

Пример. Сложить числа Х=+0.101 и У=-0.001 в дополнительных кодах.

[Х]ДОП+[У]ДОП=0.101+1.111=0.100

[У]ДОП=0.100

В данном примере возник перенос единицы (P0=1) из знакового разряда, который игнорируется. Кроме того, возник перенос единицы (P1=1) из старшего числового разряда в знаковый. Следовательно, P0+P1=0что свидетельствует об отсутствии переполнения разрядной сетки.

Пример. Сложить положительные числа Х=0.101; Y=0.100;

[Х]ДОП+[У]ДОП=0.101+0.100=1.001

В данном примере P0=0; P1=1. Следовательно, P0+P1=0+1=1, что свидетельствует о переполнении разрядной сетки.

Пример. Сложить отрицательные числа Х=1.011 и Y=1.100

[Х]ДОП+[У]ДОП=1.011+1.100=0.111

Здесь P0=1; P1=0. Следовательно, P0+P1=0+1=1, что свидетельствует о переполнении разрядной сетки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]