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

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

Прямой, обратный, дополнительный коды - student2.ru
Прямым кодом целого двоичного числа Х будет называться число, образованное по формуле:

Прямой, обратный, дополнительный коды - student2.ru
Прямым кодом дробного двоичного числа X будет число, образованное по формуле:

       
    Прямой, обратный, дополнительный коды - student2.ru
  Прямой, обратный, дополнительный коды - student2.ru
 

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

 
  Прямой, обратный, дополнительный коды - student2.ru

 
  Прямой, обратный, дополнительный коды - student2.ru

Обратным кодом дробного двоичного числа X называется число, образованное по формуле:

Прямой, обратный, дополнительный коды - student2.ru

 
  Прямой, обратный, дополнительный коды - student2.ru

Правило: Чтобы получить обратный код отрицательного двоичного числа, в знаковый разряд нужно поставить 1, а значащие разряды проинвертировать (0 заменить 1,а 1 заменить 0).

Прямой, обратный, дополнительный коды - student2.ru 0 . 101

Знаковый разряд Значащие разряды

1 . 101

A = 0.0100 +4 прямой код;

А = 1.1011 -4 обратный код;

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

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

Если возникает единица переноса из знакового разряда, то она прибавляется к младшему разряду.

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

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

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

Пример:

А=5, В=4

0.0101 +5 прямой код 0.0100 +4 прямой код

1.1010 -5 обратный код 1.1011 -4 обратный код

А+В

+
0.0101 +5 прямой код

0.0100 +4 прямой код

 
  Прямой, обратный, дополнительный коды - student2.ru

0.1001 +9 прямой код

А-В

+
0.0101 +5 прямой код

 
  Прямой, обратный, дополнительный коды - student2.ru

1.1011 -4 обратный код

Прямой, обратный, дополнительный коды - student2.ru 1 0.0000

Прямой, обратный, дополнительный коды - student2.ru +1

0.0001 прямой код

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

В-А

+
0.0100 +4 прямой код

1.1010 -5 обратный код

Прямой, обратный, дополнительный коды - student2.ru 1.1110

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

1.0001 прямой код

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

 
  Прямой, обратный, дополнительный коды - student2.ru

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

       
    Прямой, обратный, дополнительный коды - student2.ru
  Прямой, обратный, дополнительный коды - student2.ru
 

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

Прямой, обратный, дополнительный коды - student2.ru

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

Это применимо как для целых так и для дробных чисел.

Пример:

Прямой, обратный, дополнительный коды - student2.ru А=5, В=4

+
+
1.1010 -5 обратный код 1.1011 -4 обратный код

1 1

Прямой, обратный, дополнительный коды - student2.ru Прямой, обратный, дополнительный коды - student2.ru 1.1011 -5 дополнительный код 1.1100 -4 дополнительный код

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

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

При возникновении 1 переноса из знакового разряда – она отбрасывается.

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

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

Пример:

А-В

+
1.1100 -4 дополнительный код

0.0101 +5 прямой код

Прямой, обратный, дополнительный коды - student2.ru Прямой, обратный, дополнительный коды - student2.ru Прямой, обратный, дополнительный коды - student2.ru Прямой, обратный, дополнительный коды - student2.ru 0.0001 +1 прямой код

Если образовался “0” в знаковом разряде, то число получилось положительным и представлено в прямом коде, а если “1”, то это число отрицательное и представлено в дополнительном коде.

Пример:

В-А

+
0.0100 +4 прямой код

Прямой, обратный, дополнительный коды - student2.ru 1.1011 -5 дополнительный код

1.1111

Знаковый разряд результата равен 1. Из этого следует, что результат получился отрицательным и представлен в дополнительном коде. Прямой код результата равен:

+
1.0000

Прямой, обратный, дополнительный коды - student2.ru 1.0001 -1 прямой код

Наши рекомендации