Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы by Рузилька.doc
Скачиваний:
20
Добавлен:
04.09.2019
Размер:
690.18 Кб
Скачать

8.Логический, циклический и арифметический сдвиги над двоичными кодами чисел.

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

0

0

1

0

0

1

0

1

1

1

Циклический сдвиг отличается от логического тем, что при смещении всей числовой последовательности цифры выходящие за пределы разрядной сетки снова вводятся в освобождающиеся разрядные позиции. Н-р: в 8-ми разрядной сетке исходный код 10101001 при циклическом сдвиге на 2 разряда вправо будет иметь вид:

0

1

1

0

1

0

1

0

0

1

При арифметическом сдвиге производится смещение всей числовой последовательности (вправо или влево) без изменения позиции знака числа. Для положительного и отрицательного чисел представленных в прямом коде при сдвиге влево или вправо освободившиеся разряды сетки заполняются нулями. Для отрицательных чисел представленных в обратном коде, освобождающиеся разряды сетки при сдвиге числа вправо или влево заполняются единицами. Особенностью сдвига отрицательных чисел представления в дополнительном коде является то, что при сдвиге вправо освобождающиеся старшие разряды сетки заполняются единицами, а при сдвиге влево младшие разряды заполняются нулями. Н-р: при сдвиге исходного отрицательного числа представленного в дополнительном коде Хдоп = 11100100 на три разряда вправо и влево соответственно получим: Хдоп вправо = 11111100 Хдоп влево = 10100000

9. Алгебраическое сложение чисел в форме с фиксированной точкой.

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

При использовании обратного кода возникающая единица переноса из знакового разряда циклически прибавляется к младшему разряду суммы кодов. А при использовании дополнительного кода эта единица просто отбрасывается. Например: пусть требуется сложить числа Х=+610=11002 и У=-310=-0112.

Представим данные числа в соответствующих кодах:

Хпр=0110

Упр=1011; Уобр=1100; Удоп=1101

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

Хпр=0110 Хпр= 0110

обр =1100 доп=1101

10010 10011

1 0011

(Х+У)пр=0011=+0112=310

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

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

Если при сложении получено положительное число (0 в знаковом разряде), то оно представлено в прямом коде, а если отрицательное (1), то число представлено в дополнительном коде. Например: сменим знаки у чисел, используемых в предыдущем примере: Х= -610= -1102 и У= +310= +0112. Соответствующие коды указываемых слагаемых будут иметь вид: Хдоп= 1010 и Упр= 0011. При арифметическом сложении получаем:

Хдоп= 1010

+Упр= 0011

(Х+У)доп= 1101 → (1011)пр= -011= -3

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

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

Рассмотрим примеры переполнения при четырех разрядных сетках: Пусть в первом примере складываются положительные числа +510 и +610, а во втором отрицательные –610 и –710.

Представим указанные числа в дополнительном коде:

+510= +1012 → (0101)доп

+610= +1102 → (0110)доп

-610= -1102 → (1110)пр → (1010)доп

-710= - 1112 → (1111)пр → (1001)доп

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

1 1

(0101)доп (1010)доп

+(0110)доп +(1001)доп

(1011)доп (10011)доп

(+510) + (+610) = 11 (-610) + (-710) = -1310

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

(01011)доп → +10112 = 1110

(10011)доп → (11101)пр → -11012 = -1310

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

Таким образом, операция алгебраического сложения чисел с фиксированной запятой включает:

1. представление слагаемых в дополнительном коде

2. суммирование кодов слагаемых по правила двоичной арифметики

3. анализ переполнения разрядной сетки.