Примеры аудиторных заданий
Задание №1.Необходимо выполнить арифметическую операцию сложения двух чисел с фиксированной точкой, записанных в десятичной системе счисления: .
Решение. Необходимо оба числа перевести в двоичную систему счисления, а затем представить в дополнительном коде.
Для удобства возьмем длину разрядной сетки равную четырем битам.
Формат суммы представлен на рис. 2.12, а вычисление суммы и значения флагов на рис.2.13.
0, | |||
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, | |||
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.
0, | ||||
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.
0, | ||||
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, | ||||
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, | ||||
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=
, а это не правильно так как оба слагаемых отрицательные числа, значит и сумма должна быть отрицательной, а в данном случае сумма получается положительной, так как знаковый бит равен (
).
- , потому что сумма не равняется (
).
- , потому что результат не правильный и переполнение разрядной сетки есть.