- •Оглавление
- •Задание 1. «Системы счисления и двоичное представление информации в памяти компьютера»
- •Пример №1
- •Пример №2
- •Варианты задания 1
- •Задание 2. «Кодирование текстовой информации. Кодировка ascii. Основные кодировки кириллицы»
- •Пример №1
- •Пример №2
- •Пример №3
- •Варианты задания 2
- •Задание 3. «Выполнение арифметических операций в двоичной, восьмеричной и шестнадцатеричной системах счисления»
- •Пример №1
- •Пример №2
- •Варианты задания 3
- •Задание 4: «Вычисление информационного объема сообщения»
- •Пример №1
- •Пример №2
- •Пример №3
- •Пример №4
- •Пример №5
- •Пример №6
- •Пример №7
- •Варианты задания 4
- •Задание 5: «Представление целых чисел в эвм. Арифметические операции над целыми числами. Сложение и вычитание»
- •Пример:
- •Варианты задания 5
- •Задание 6: «Представление целых чисел в эвм. Арифметические операции над целыми числами. Умножение и деление»
- •Пример №1
- •Пример №2
- •Варианты задания 6
- •Задание 7 «Представление вещественных чисел в эвм. Арифметические операции над числами с плавающей запятой»
- •Пример №1
- •Пример №2
- •Пример №3
- •Пример №4
- •Варианты задания 7
- •Задание 8 «Двоично-десятичное представление информации в памяти компьютера. Операции с двоично-десятичными числами»
- •Запрещённые битовые комбинации 1010 1011 1100 1101 1110 1111
- •Варианты задания 8
- •Задание 9 «Эффективное кодирование. Алгоритм Шеннона-Фано»
- •Варианты задания 9
Задание 5: «Представление целых чисел в эвм. Арифметические операции над целыми числами. Сложение и вычитание»
Что нужно знать:
-
перевод чисел из десятичной в двоичную систему счисления
-
представление целых чисел в ЭВМ: если целое число со знаком занимает в памяти один байт, то первый бит числа - это знаковый разряд числа, оставшиеся 7 бит занимает абсолютное представление числа в двоичном коде
-
для целых чисел со знаком применяются три формы записи (кодирования): прямой код, обратный код и дополнительный код
-
положительные числа в прямом, обратном и дополнительном кодах изображаются одинаково - двоичными кодами с цифрой 0 в знаковом разряде, например для А10=+5
Апк=Аок=Адк=0:0000101,
здесь «:» разделяет знаковый и цифровые разряды числа
-
при записи прямого кода отрицательных чисел в знаковый разряд помещается цифра 1, а в разряды цифровой части числа — двоичный код его абсолютной величины, например для А10=-5
Апк=1:0000101
-
обратный код отрицательных чисел получается инвертированием всех цифр прямого кода числа, исключая знаковый разряд: нули заменяются единицами, а единицы — нулями, например для А10=-5
Аок=1:1111010
-
дополнительный код отрицательного числа образуется прибавлением единицы к младшему разряду обратного кода, например для А10=-5
Адк=1:1111011
-
при выполнении операции сложения числа, записанные в прямом, обратном или дополнительном коде, складываются по общим правилам сложения двоичных чисел, причем знаковые разряды участвуют в сложении так же, как и значащие информационные. Если при сложении чисел в обратном коде образуется перенос из знакового разряда, то к младшему числовому разряду добавляется единица. Если такой перенос возникает при использовании дополнительного кода, то единица переноса теряется. Знак результата операции сложения формируется автоматически, результат представляется в том коде, в котором представлены исходные слагаемые
-
операция вычитания приводится к операции сложения следующим образом (при А>=0 и B>=0):
Операция |
Необходимое преобразование |
А-В |
А+(-В) |
-А+В |
(-А)+В |
-А-В |
(-А)+(-В) |
Скобки в представленных выражениях указывают на замену операции вычитания операцией сложения с обратным или дополнительным кодом соответствующего числа
Пример:
Дано: А10=31 и В10=23. Вычислить:
1) С=А+В;
2) D=А-В;
3) E=–А+В;
4) F=–А-В.
Результаты представить в прямом, обратном и дополнительном кодах.
Общий подход:
-
Перевести оба числа в двоичную систему счисления,
-
Для выполнения операции сложения представить числа в прямом коде, а для выполнения операции вычитания – в обратном или дополнительном коде,
-
Выполнить необходимые вычисления.
Решение:
-
Переводим исходные данные в двоичную систему счисления:
А10=31 А2=11111
В10=23 В2=10111
-
Запишем исходные данные в прямом, обратном и дополнительном кодах. Положительные числа в прямом, обратном и дополнительном коде записываются одинаково – 0 в знаковом разряде, далее двоичный код числа (при переводе не забываем про разрядность чисел – они занимают в памяти 1 байт, т.е. под число отводится 8 разрядов):
АПК=АОК=АДК=0:0011111
ВПК=ВОК=ВДК=0:0010111
-
Теперь запишем отрицательные значения исходных чисел в прямом, обратном и дополнительном кодах.
При записи отрицательного числа в прямом коде помещаем 1 в знаковый разряд:
-АПК==1:0011111 -ВПК=1:0010111
При переводе отрицательного числа в обратный код инвертируем цифры числа, представленного в прямом коде. При инверсии исключаем знаковый разряд:
-АОК==1:1100000 -ВОК=1:1101000
Для получения дополнительного кода отрицательного числа прибавляем к числу, записанному в обратном коде, единицу:
-АДК==1:1100001 -ВДК=1:1101001
4) Теперь выполним необходимые вычисления:
СПК=СОК=СДК=АПК+ВПК
0:0011111
0:0010111
0:0110110
СПК=СОК=СДК=0:0110110
Выполним проверку полученного результата: С10=31+23=54, это С2=110110. Результат получен правильно.
2) Вычисляем D=А-В=А+(-В), т.е. от операции вычитания переходим к операции сложения. Отрицательные значения обрабатываются только в обратном и дополнительном кодах.
АОК=АДК=0:0011111
-ВОК=1:1101000 -ВДК=1:1101001
DОК=АОК+(-ВОК) DДК=АДК+(-ВДК)
0:0011111 0:0011111
1:1101000 1:1101001
0:0000111 0:0001000 – единица переноса игнорируется
1 - единица переноса из знакового разряда
0:0001000
Получили DОК=DДК=0:0001000. Т.к, получилось положительное число, то обратный и дополнительный код совпадают.
Выполним проверку полученного результата: D10=31-23=8, это D2=1000. Результат получен правильно.
-
Вычисляем E=(–А)+В, от операции вычитания переходим к операции сложения. Отрицательные значения обрабатываются только в обратном и дополнительном кодах.
-АОК=1:1100000
-АДК=1:1100001
ВПК=ВОК=ВДК=0:0010111
EОК=(–АОК)+ВОК EДК=(–АДК)+ВДК
1:1100000 1:1100001
0:0010111 0:0010111
1:1110111 1:1111000
Получили
EОК=1:1110111
EДК=1:1111000
Выполним проверку полученного результата Е10=-31+23=-8
E2=-1000
EПК=1:0001000
EОК=1:1110111
EДК=1:1111000
Результат получен правильно.
-
F=(-А)+(-В). От операции вычитания переходим к операции сложения. Отрицательные значения обрабатываются только в обратном и дополнительном кодах.
-АОК==1:1100000 -ВОК=1:1101000
-АДК==1:1100001 -ВДК=1:1101001
FОК=(–АОК)+(-ВОК) FДК=(–АДК)+(-ВДК)
1:1100000 1:1100001
1:1101000 1:1101001
1:1001000 1:1001010 – единица переноса
………….1 - единица переноса игнорируется
1:1001001
Получили
FОК=1:1001001
FДК=1:1001010
Выполним проверку полученного результата F10=-31-23=-54
F2=-110110
FПК=1:0110110
FОК=1:1001001
FДК=1:1001010
Результат получен правильно.