- •2. Арифметические основы микропроцессорной техники
- •2.1. Системы счисления
- •2.2. Перевод из одной системы счисления в другую
- •2.2.1. Перевод целого десятичного числа в двоичную систему счисления
- •2.2.4. Перевод целого двоичного числа в шестнадцатеричную систему счисления
- •2.2.5. Перевод целого шестнадцатеричного числа в двоичную систему счисления
- •2.2.6. Перевод целого шестнадцатеричного числа в десятичную систему счисления
- •2.2.7. Перевод дробного десятичного числа в двоичную систему счисления
- •2.2.8. Перевод дробного двоичного числа в десятичную систему счисления
- •2.3. Представление информации в вычислительно технике
- •2.3.1. Целые числа без знака (unsigned)
- •2.3.2. Целые числа со знаком (signed)
- •2.3.3. Числа с плавающей точкой (float)
- •2.3.4. Символьные данные (char)
- •2.3.5.2. Представление десятичного числа в двоично-десятичном неупакованном формате
- •2.3.5.3. Перевод bcd упакованного формата в десятичное число
- •2.3.5.4. Перевод bcd неупакованного формата в десятичное число
- •2.4. Арифметические операции
- •2.4.1. Арифметическое сложение
- •2.4.1.1. Арифметическое сложение двоичных чисел
- •2.4.1.2. Арифметическое сложение шестнадцатеричных чисел
- •2.4.2. Арифметическое вычитание
- •2.4.3. Арифметическое умножение
- •2.4.4. Арифметическое деление
- •2.5. Проверка результатов выполнения арифметических операций
2.4.2. Арифметическое вычитание
Арифметическая операция вычитания выполняется по правилам вычитания (с использованием заёма из старшего значащего разряда):
0 - 0 = 02; 0 - 1 = 12; 1 - 0 = 12; 1 - 1 = 02.
При вычитании 0 - 1 = 12 производится заем в текущий бит.
Пример: Произвести вычитание в восьмиразрядной сетке 9710 - 7810
Порядок выполнения арифметического вычитания двоичных чисел в восьмиразрядной сетке приведен в табл.3.2.
Табл.2.21. Арифметическое вычитание двух чисел 0110 00012 – 0100 11102
Система |
Двоичное число |
Десятичное число |
||||||||
Номер разряда |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
1 |
0 |
Заем |
|
|
1→ |
1+1→ ↓ |
1+1→ ↓ |
1+1→ ↓ |
1+1 ↓ |
|
|
|
Расчетный заем |
|
|
↑ |
1 |
1 |
1 |
2 |
|
→ |
10 |
Уменьшаемое |
0 |
1 |
1→0 |
0 |
0 |
0 |
0 |
1 |
9 |
7 |
Вычитаемое |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
7 |
8 |
Разность |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
9 |
Примечание.
1. Символом «↑» отмечен ближайший значащий разряд (равный единице), из которого будет выполнен первоначальный заём.
2. Символами «→» отмечены разряды, из которых выполняются последующие заёмы.
3. Символами «↓» отмечены разряды, в которые выполняются заёмы.
4. С учетом того, что вес каждого, более старшего разряда в два раза больше соседнего, то в каждый, более младший разряд, приходят две единицы (1+1=2).
Ответ: 9710 - 7810 = 0110 00012 - 0100 11102 = 0001 00112 = 1910.
Пример: Произвести вычитание в восьмиразрядной сетке 010 - 110
Порядок выполнения арифметического вычитания двоичных чисел в восьмиразрядной сетке приведен в табл.3.2.
Табл.2.21. Арифметическое вычитание двух чисел 0000 00002 – 0000 00012
Система |
Двоичное число |
Десятичное число |
||||||||
Номер разряда |
СF |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
Расчетный заем |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
2 |
|
Уменьшаемое |
|
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Вычитаемое |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
Разность |
|
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
-1 |
Примечание. СF – разряд заема (переноса). Значение бита переноса СF в результате не учитывается.
Ответ: 010 - 110 = 0000 00002 – 0000 00012 = 111111112 = -110.