- •Содержание
- •Введение
- •1 Перевод чисел из одной позиционной системы счисления в другую позиционную систему счисления
- •1.1 Цель занятия
- •1.2 Методические указания по организации самостоятельной работы студентов
- •1.3 Контрольные вопросы
- •1.4 Примеры аудиторных заданий
- •2.2 Методические указания по организации самостоятельной работы студентов
- •2 Арифметические операции сложения и вычитания, двоичных беззнаковых и знаковых чисел с фиксированной точкой в компьютерных системах
- •2.1 Цель занятия
- •2.3 Контрольные вопросы
- •2.4 Примеры аудиторных заданий
- •3 Арифметические операции сдвига, умножения и деления двоичных беззнаковых чисел с фиксированной точкой в компьютерных системах
- •3.1 Цель занятия
- •3.2 Методические указания по организации самостоятельной работы студентов
- •3.3 Контрольные вопросы
- •3.4 Примеры аудиторных заданий
- •4 Арифметические операции умножения и деления двоичных знаковых чисел с фиксированной точкой в компьютерных системах
- •4.1 Цель занятия
- •4.2 Методические указания по организации самостоятельной работы студентов
- •4.3 Контрольные вопросы
- •4.4 Примеры аудиторных заданий
- •Перечень ссылок
- •Приложение а
- •61166 Харків, просп. Леніна, 14
2.3 Контрольные вопросы
1. Какие флаги в регистре флагов, отвечают за корректность выполнения арифметических операций сложения и вычитания.
2. Сформулируйте правила сложения и вычитания двоичных чисел.
3. Как представляются двоичные числа в прямом, обратном и дополнительном коде.
4. Назовите свойства прямого, обратного и дополнительного кодов.
5. Объясните принцип работы флага .
6. Объясните
принцип работы флага
.
7. Объясните
принцип работы флага
.
8.
Объясните принцип работы флага
.
9. Назовите случаи, которые могут возникнуть при выполнении арифметических операций знакового сложения и вычитания.
2.4 Примеры аудиторных заданий
Задание №1. Необходимо
выполнить арифметическую операцию
сложения двух чисел с фиксированной
точкой, записанных в десятичной системе
счисления:
.
Решение. Необходимо оба числа перевести в двоичную систему счисления, а затем представить в дополнительном коде.
Для удобства возьмем длину разрядной сетки равную четырем битам.
Формат суммы представлен на рис. 2.12, а вычисление суммы и значения флагов на рис.2.13.
0, |
1 |
1 |
1 |
D3 |
D2 |
D1 |
D0 |
Рисунок 2.12 - Формат суммы
|
||
Десятичное число |
Двоичное число |
Значения флагов |
(+5)(10) |
0,101(2) |
СF=0 |
(+2)(10) |
0,010(2) |
SF=0 |
(+7)(10) |
0,111(2) |
ZF=0 |
|
|
OF=0 |
Рисунок 2.13 - Пример вычисления суммы двух двоичных чисел с фиксированной точкой
Значение флагов:
- , потому, что нет перехода ( ) из разряда D2 в знаковый разряд D3 и нет перехода из знакового разряда D3 за пределы разрядной сетки.
-
,
потому, что значение знакового бита
D3=
.
-
,
потому, что сумма не равняется (
).
- , потому, что результат правильный и переполнение разрядной сетки нет.
Задание №2. Необходимо
выполнить арифметическую операцию
сложения двух чисел с фиксированной
точкой записанных в десятичной системе
счисления:
.
Решение. Необходимо оба числа перевести в двоичную систему счисления, а затем представить в дополнительном коде.
Для удобства возьмем длину разрядной сетки равную четырем битам.
Формат суммы представлен на рис. 2.14, а вычисление суммы и значения флагов на рис.2.15.
1, |
1 |
1 |
0 |
D3 |
D2 |
D1 |
D0 |
Рисунок 2.14 - Формат суммы
|
||
Десятичное число |
Двоичное число |
Значения флагов |
(+7)(10) |
0,111(2) |
CF=1 |
(+7)(10) |
0,111(2) |
SF=1 |
(+14)(10) |
1,110(2) |
ZF=0 |
|
|
OF=1 |
Рисунок 2.15 - Пример вычисления суммы двух чисел и значение флагов после получения результата
Значение флагов:
- , т.к. есть переход ( ) из разряда D2 в знаковый разряд D3 и нет перехода из знакового разряда D3 за пределы разрядной сетки.
-
,
потому что значение знакового бита
D3=
,
а это не правильно, так как оба слагаемых
положительные числа, значит и сумма
должна быть положительной, а в данном
случае сумма получается отрицательной,
так как знаковый бит равен (
).
- , потому что сумма не равняется ( ).
- , потому что результат не правильный и переполнение разрядной сетки есть.
Задание №3. Необходимо
выполнить арифметическую операцию
сложения двух чисел с фиксированной
точкой, записанных в десятичной системе
счисления:
).
Решение. Необходимо оба числа перевести в двоичную систему счисления.Для удобства возьмем длину разрядной сетки равную четырем битам. Формат суммы представлен на рис. 2.16, а вычисление суммы и значения флагов на рис.2.17.
1 |
0, |
0 |
1 |
1 |
|
D3 |
D2 |
D1 |
D0 |
Рисунок 2.16 - Формат суммы
Десятичное число |
Двоичное число |
Значения флагов |
|
(+5)(10) |
0,101(2) |
CF=0 |
|
(-2)(10) |
1,110(2) |
SF=0 |
|
(+3)(10) |
10,011(2) |
ZF=0 |
|
|
|
OF=0 |
|
Рисунок 2.17 - Пример вычисления суммы двух чисел и значение флагов после получения результата
Значение флагов:
- , потому что есть перехода ( ) из разряда D2 в знаковый разряд D3 и есть перехода из знакового разряда D3 за пределы разрядной сетки.
- , потому что значение знакового бита D3= .
- , потому что сумма не равняется ( ).
- , потому что результат правильный и переполнение разрядной сетки нет.
Единица, которая вышла за пределы разрядной сетки, не учитывается.
Задание №4. Необходимо
выполнить арифметическую операцию
сложения двух чисел с фиксированной
точкой записанных в десятичной системе
счисления:
.
Решение. Необходимо оба числа перевести в двоичную систему счисления, а затем представить в дополнительном коде.
Для удобства возьмем длину разрядной сетки равную четырем битам.
Формат суммы представлен на рис. 2.18, а вычисление суммы и значения флагов на рис.2.19.
1 |
0, |
0 |
1 |
1 |
|
D3 |
D2 |
D1 |
D0 |
Рисунок 2.18 - Формат суммы
Десятичное число |
Двоичное число |
Значения флагов |
(+2)(10) |
0,010(2) |
CF=0 |
(-5)(10) |
1,011(2) |
SF=1 |
(-3)(10) |
1,101(2) |
ZF=0 |
|
|
OF=0 |
Рисунок 2.19 - Пример вычисления суммы двух чисел и значение флагов после получения результата
Значение флагов:
- , потому что нет перехода ( ) из разряда D2 в знаковый разряд D3 и нет перехода из знакового разряда D3 за пределы разрядной сетки.
- , потому что значение знакового бита D3= .
- , потому что сумма не равняется ( ).
-
,
потому что результат
правильный и переполнение разрядной
сетки нет. Число
и есть (
).
Для того, чтобы перейти к прямому коду, необходимо все биты проинвертировать, а затем к младшему биту прибавить ( ), рис.2.20:
1,101(2) |
(-3) |
0,010(2) |
инверсия |
1(2) |
+1 |
0,011(2) |
(+3) |
Рисунок 2.20 - Пример перехода от отрицательной записи числа в дополнительном коде к положительной записи числа
Задание №5. Необходимо
выполнить арифметическую операцию
сложения двух чисел с фиксированной
точкой, записанных в десятичной системе
счисления:
).
Решение. Необходимо оба числа перевести в двоичную систему счисления, а затем представить в дополнительном коде. Для удобства возьмем длину разрядной сетки равную четырем битам.
Формат суммы представлен на рис. 2.21, а вычисление суммы и значения флагов на рис.2.22.
1 |
1, |
0 |
0 |
1 |
|
D3 |
D2 |
D1 |
D0 |
Рисунок 2.21 - Формат суммы
|
|||
Десятичное число |
Двоичное число |
Значения флагов |
|
(-5)(10) |
1,011(2) |
CF=0 |
|
(-2)(10) |
1,110(2) |
SF=1 |
|
(-7)(10) |
11,001(2) |
ZF=0 |
|
|
|
OF=0 |
|
Рисунок 2.22 - Пример вычисления суммы двух чисел и значение флагов после получения результата
Значение флагов:
- , потому что есть переход ( ) из разряда D2 в знаковый разряд D3 и есть перехода из знакового разряда D3 за пределы разрядной сетки.
- , потому что значение знакового бита D3= .
- , потому что сумма не равняется ( ).
- , потому что результат правильный и переполнение разрядной сетки нет. Единица, которая вышла за пределы разрядной сетки не учитывается.
Число
и есть
.
Для того, чтобы перейти к прямому коду,
необходимо все биты проинвертировать,
а затем к младшему биту прибавить (
),
рис.2.23.
1,001(2) |
(-7) |
0,110(2) |
инверсия |
1(2) |
(+1) |
0,111(2) |
(+7) |
Рисунок 2.23 - Пример перехода от отрицательной записи числа в дополнительном коде к положительной записи числа
Задание №6. Необходимо
выполнить арифметическую операцию
сложения двух чисел с фиксированной
точкой, записанных в десятичной системе
счисления:
.
Решение. Необходимо оба числа перевести в двоичную систему счисления, а затем представить в дополнительном коде. Для удобства возьмем длину разрядной сетки равную четырем битам. Формат суммы представлен на рис. 2.24, а вычисление суммы и значения флагов на рис.2.25.
|
0, |
0 |
1 |
0 |
|
D3 |
D2 |
D1 |
D0 |
Рисунок 2.24 - Формат суммы
|
|
|
|
Десятичное число |
Двоичное число |
Значения флагов |
|
(-7)(10) |
1,001(2) |
CF=1 |
|
(-7)(10) |
1,001(2) |
SF=0 |
|
(-14)(10) |
10,010(2) |
ZF=0 |
|
|
|
OF=1 |
|
Рисунок 2.25 - Пример вычисления суммы двух чисел и значение флагов после получения результата
Значение флагов:
- , потому что нет перехода ( ) из разряда D2 в знаковый разряд D3 и есть переход из знакового разряда D3 за пределы разрядной сетки.
- , потому что значение знакового бита D3= , а это не правильно так как оба слагаемых отрицательные числа, значит и сумма должна быть отрицательной, а в данном случае сумма получается положительной, так как знаковый бит равен ( ).
- , потому что сумма не равняется ( ).
- , потому что результат не правильный и переполнение разрядной сетки есть.
