Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Сложение двоичных чисел с использованием обратного кода(дополнительного кода).

Читайте также:
  1. V. СТАТУС МЕЖДУНАРОДНОЙ КОНВЕНЦИИ О БОРЬБЕ С ВЕРБОВКОЙ, ИСПОЛЬЗОВАНИЕМ, ФИНАНСИРОВАНИЕМ И ОБУЧЕНИЕМ НАЕМНИКОВ
  2. VI. Саурсы и кисло-сладкие коктейли с использованием ароматических модификаторов.
  3. Аддитивная группа действительных чисел.
  4. Векторы. Операции над векторами (сложение, вычитание, умножение на число), n-мерный вектор. Понятие о векторном пространстве и его базисе.
  5. Визначення чисельності працівників служби охорони праці.
  6. Визначення чисельності працівників служби охорони праці.
  7. Вопрос 41 Построение различных геолого-геофизических схем и карт с использованием материалов ГИС
  8. Вопрос №51. Контроль за использованием и охраной земель: понятие, виды, функции органов
  9. Вычитание двоичных чисел
  10. Государственный контроль за использованием и охраной земель.

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

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

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

Например, если число 37(10) = 100101(2) объявлено величиной типа Integer (шестнадцатибитовое со знаком), то его прямым кодом будет 0000000000100101, а если величиной типа LongInt (тридцатидвухбитовое со знаком), то его прямой код будет 00000000000000000000000000100101. Для более компактной записи чаще используют шестнадцатеричное представление кода. Полученные коды можно переписать соответственно как 0025(16) и 00000025(16).

Дополнительный код целого отрицательного числа может быть получен по следующему алгоритму:

записать прямой код модуля числа;

инвертировать его (заменить единицы нулями, нули — единицами);

прибавить к инверсному коду единицу.

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

прямой код числа 37 есть 00000000000000000000000000100101;

инверсный код 11111111111111111111111111011010;

дополнительный код 11111111111111111111111111011011 или FFFFFFDB(16).

Модифицированные коды. Представление положительных и отрицательных чисел.

Правила сложения двоичных чисел с фиксированной точкой.

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

Порядок сложения чисел:

1. Числа записываются в обратном или дополнительном коде.

2. Числа должны иметь одинаковое кол-во разрядов.

3. Сложение чисел выполняется поразрядно; 0+0=0; 0+1=1; 1+0=1; 1+1=10.

4. Знаковые разряды участвуют в сложении

5. Сумма чисел получается в том же коде, в котором представлены слагаемые.

6. Если возник перенос из знакового разряда, то:

-при сложении в доп.коде перенос теряется;

-при сложении в обратном коде единица переноса прибавляется к младшему разряду

Пример: А10 =-23 В10= 36

А2=-10111=-010111 А2пк=1.010111

В2=100100=100100 В2пк=0.100100

 

А2ок=1.101000

В2ок=0.100100

10.001100

 

(А+В)2ок=0.001101 (А+В)2дк=0.001101

(А+В)2пк=0.001101 (А+В)2ок=0.001101

(А+В)2=+001101=+13 (А+В)2=+001101=+13

 

А=-23 Апк=1.23 Аок=1.76

В=36 Впк=0.36 Вок= 0.36

10.12 – (А+В)ок=0.13=А+В=+13.

 

 

Сложение двоичных чисел с использованием обратного кода(дополнительного кода).

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

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

Пример: Сложить числа +12 и -5.

а) В обратном коде

Десятичная форма Двоичная форма Прямой код Обратный код
+12 +1100    
-5 -101    

Выполним сложение:

  +                
               
+                  
                 
                   

Результат в обратном коде – 00000111. Поскольку знаковый разряд равен 0, результат положительный, и, следовательно, запись кода числа совпадает с записью прямого кода. Теперь можно восстановить алгебраическую запись результата. Он равен +111 (незначащие нули отброшены), или в десятичной форме +7. Проверка (+12-5=+7) показывает, что результат верный.

б) В дополнительном коде

Десятичная форма Двоичная форма Прямой код Обратный код Дополнительный код
+12 +1100      
-5 -101      

Выполним сложение в дополнительном коде:

  +                
               
                   
                 
                   

Результат в дополнительном коде – 00000111. Поскольку знаковый разряд равен 0, результат положительный. Теперь можно восстановить алгебраическую запись результата. Он равен +111 (незначащие нули отброшены), или в десятичной форме +7. Проверка (+12-5=+7) показывает, что результат верный.

Умножение и деление двоичных чисел производится в ЭВМ в прямом коде, а знаки их используются лишь для определения знака результата.

28.29. Сложение двоичных чисел с использованием модифицированного обратного кода(дополнительного кода).

Модифицированные обратные и дополнительные коды двоичных чисел отличаются соответственно от обратных и дополнительных кодов удвоением значений знаковых разрядов. Знак «+» в этих кодах кодируется двумя нулевыми знаковыми разрядами, а знак «-» — двумя единичными разрядами.

Целью введения модифицированных кодов являются фиксация и обнаружение случаев получения неправильного результата, когда значение результата превышает максимально возможный результат в отведенной разрядной сетке машины. В этом случае перенос из зна­чащего разряда может исказить значение младшего знакового разря­да. Значение знаковых разрядов «01» свидетельствует о положитель­ном переполнении разрядной сетки, а «10» — об отрицательном пере­полнении. В настоящее время практически во всех моделях ЭВМ роль удвоенных разрядов для фиксации переполнения разрядной сетки иг­рают переносы, идущие в знаковый и из знакового разряда.

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

Примеры.

1) Сложить два числа в модифицированном коде:

X = 00. 01012, Y = 00. 00112, X + Y = 510 + 310 = 810

00. 0101

+ 00. 0011

00. 1000 = 810

2) Сложить X = -510 = -01012 = 11. 0101, Y = -810 = -10002 = 11. 1000

X + Y = -1310

11. 1011

+ 11. 1000

1 11. 0011 = -1310

3) Сложить X = 0,1101, Y = 0,1101, X + Y = 2610

00. 1101

+ 00. 1101

01. 1010 различные знаковые разряды свидетельствуют о переполнении разрядной сетки.

4) -8 - 8 = 0

11. 1000

+ 11. 1000

1 11. 0000.




Дата добавления: 2015-01-30; просмотров: 190 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.009 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав