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

В компьютерной арифметике, которая базируется на двоичной системе счисления, операция «вычитания» заменяется операцией «сложения».

Рассмотрим, как это происходит.

Для хранения целых чисел в памяти ЭВМ выделяется фиксированное число двоичных разрядов – бит. Рассмотрим 8–и битовое представление числа. Каждый бит нумеруется «слева – направо» от 0 до 7.

вес разряда нумерация бит в байте
  26 25 24 23 22 21 20

7 6 5 4 3 2 1 0

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

Если в разрядах байта с 0 по 6 поместить абсолютное значение числа, а в 7-ом бите установить его знак (0 или 1), то полученное представление числа называется прямым двоичным кодом.

Если в прямом коде число представлено как отрицательное (7-ой бит равен 1), то в числе инвертируются [1] все разряды, кроме знакового. Такое представление числа называется обратный двоичный код.

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

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

Рассмотрим на примерах операцию вычитания для 8-и битовых чисел.


ПРИМЕР 1: Вычесть число 3 из 5 (1012 – 0112).

· Запишем абсолютное значение числа -3 в байте

               

· В знаковый – седьмой – бит запишем признак отрицательности числа 1 и получим прямой двоичный код числа -3.

               

· Инвертируем все разряды в числе, кроме знакового

               

Получим обратный двоичный код числа -3.

· Прибавим к обратному коду единицу

               

Получим дополнительный двоичный код числа -3.

· Сложим число 5 и дополнительный двоичный код числа -3

Получили число 0102 = 210.

Ответ: 1012 – 0112 = 0102

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

510 – 310 = 210


ПРИМЕР 2: Вычесть число 49 из 63

· Прямой двоичный код числа -49

               

· Инверсный код числа -49 (обратный двоичный код)

               

· Дополнительный код числа -49

               

· Сложим число 63 и дополнительный код числа -49

Получили число 11102 = 1410

Ответ: 11 11112 – 11 00012 = 11102

Проверка: 6310 – 4910 = 1410

ЗАДАНИЕ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ. Используя схемы примера 1 или 2, сделайте вычитание целых чисел, используя дополнительный двоичный код.

Номер варианта Числа Номер варианта Числа
  81 и 17   64 и 32
  42 и 18   51 и 28
  42 и 36   92 и 48
  61 и 28   67 и 29
  74 и 28   82 и 29
  62 и 39   53 и 29
  43 и 28   83 и 38
  78 и 49   68 и 29

Контрольные вопросы

1. Что такое система счисления?

2. Какие существуют системы счисления?

3. Какие непозиционные системы счисления вы знаете?

4. Приведите примеры записи чисел 467, 89011 в непозиционной системе счисления.

5. Сформулируйте правило, как определяется величина числа в римской системе счисления?

6. Для чего используются непозиционные системы счисления?

7. Чем отличаются позиционные и непозиционные системы счисления?

8. Что такое основание позиционной системы счисления?

9. Для чего используются позиционные системы счисления?

10. Может ли число 5 являться основанием системы счисления?

11. Существует ли двенадцатеричная система счисления?

12. Как математически записать любое число А в произвольной позиционной системе счисления?

13. Что является весом разряда?

14. Приведите пример, указав номер разряда и его вес.

15. Сформулируйте правило, как образуются целые числа в позиционных системах счисления?

16. Приведите пример образования трех целых чисел в шестеричной позиционной системе счисления после числа 6.

17. Что означает понятие продвижение цифры в позиционной системе счисления?

18. Как представляется десятичное число 8 в 16-ной, 8-ной и 2-ной системах счисления?

19. Какие существуют достоинства и недостатки двоичной системы счисления?

20. Что такое мощность алфавита?

21. Правило перевода целого положительного числа из 10-ной системы счисления в любую другую позиционную систему.

22. Как выглядит число 36710 в 16-ной, 8-ной и 2-ной системах счисления?

23. Правило перевода правильной десятичной дроби в любую другую позиционную систему.

24. Сделайте перевод десятичной дроби 0,75 в 16-ную, 8-ную и 2-ную системы счисления.

25. Переведите число 365,2510 в 16-ную, 8-ную и 2-ную системы счисления.

26. Правило перевода восьмеричных и шестнадцатеричных чисел в двоичную систему счисления.

27. Переведите число 1578 и C1216 в двоичную систему счисления.

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

29. Переведите число 101000011111,110012 в восьмеричную и шестнадцатеричную системы счисления.

30. Применяя правило счета, составьте фрагмент таблицы сложения в восьмеричной и шестнадцатеричной системах счисления.

31. Сложите числа 17, 6 и 5 в различных позиционных системах счисления. Сделайте проверку.

32. Сложите числа 79,25 и 51,125 в различных позиционных системах счисления. Сделайте проверку.

33. Найдите разность чисел 99,05 и 51,25 в различных позиционных системах счисления. Сделайте проверку.

34. Какое представление числа называется прямым двоичным кодом? Приведите пример.

35. Какое представление числа называется обратным двоичным кодом? Приведите пример.

36. Что такое дополнительный двоичный код? Приведите пример.

37. Сделайте вычитание чисел 51 и 28, используя дополнительный код.


Литература

1. Андреева Е.В., Фалина И. Н. Системы счисления и компьютерная арифметика, Издательство: Лаборатория Базовых Знаний

2. Андреева Е.В. Системы счисления и компьютерная арифметика. Издание 3 Бином. Лаборатория знаний

3. Ашарина и. В. Основы программирования на языках С и С++

4. Гашков С. Б. Системы счисления и их применение

5. Гашков С. Б. Системы счисления и их применение

6. Еремина Е.А. Как работает современный компьютер

7. Касаткин В.Н. Азбука кибернетики



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: