- •Способы представления информации в микропроцесорных системах
- •Системы счисления
- •1.2. Представление чисел в различных системах счисления
- •1.3. Перевод чисел в различные системы счисления
- •Перевести число 1000101b в десятичную систему счисления:
- •Перевести число 1а5h в десятичную систему счисления:
- •Перевести число 1111010101b из двоичной системы в шестнадцатеричную:
- •1.4. Арифметические действия
- •1.5. Сложение по модулю два
- •1.6. Дополнительный код
- •Представить число –20 в дополнительном коде:
- •1.7. Буквенно-цифровые коды
1.5. Сложение по модулю два
Достаточно часто, при обработке информации в микропроцессорных системах, кроме обычных сложения и вычитания, необходимо выполнить операцию «сложение по модулю два» - XOR (исключающее ИЛИ). В булевой алгебре логики этому выражению соответствует уравнение:
Y = AB+AB
Функционально сложение по модулю два выполняет операцию побитного суммирования без переноса, которому соответствуют правила: 0=0+0, 0=1+1, 1=1+0
Выполнить операцию сложения по модулю два для чисел 11 1100b и 10 1110b:
11 1100b
10 1110b
-----------------
01 0010b
1.6. Дополнительный код
В микропроцессорных системах при обработке данных со знаком используется их специальное представление. Например, выполняя команду перехода назад по программе или арифметическую операцию вычитания, микропроцессор оперирует данными в дополнительном коде.
Формат чисел в дополнительном коде предполагает, что старший разряд имеет значение знакового. Если он равен нулю, то число положительное, если единице – отрицательное. Таким образом, в восьми разрядах можно записать 128 положительных чисел (от 0 до 127) и 128 отрицательных (от –1 до –128).
Положительные числа в дополнительном коде записываются в полноразрядном виде, с дополнением нулей в старших разрядах. Для записи отрицательных чисел используется специальный алгоритм преобразования соответствующего ему положительного:
Записать двоичное число, дополнив нулями недостающие старшие разряды.
Произвести поразрядную инверсию числа, получив его обратный код.
Прибавить к числу в обратном коде единицу в младшем разряде.
Для перевода числа из дополнительного кода необходимо выполнить перечисленные действия в обратном порядке.
Представить число –20 в дополнительном коде:
0001 0100
1 1
2) 1110 1011
3) + 1
------------------
1110 1100 = - 20
Определить десятичный эквивалент числа 1110 0101, представленного в дополнительном коде:
1) 1110 0101
- 1
-------------------
1110 0100
2) 0001 1011
3) 0001 1011 = - 27
Вычислите значение выражения 32-20, используя дополнительный код. Для проверки результата переведите полученное число в десятичную систему счисления.
Значение выражения будет вычислено как сумма 32+(-20), а полученный при переносе старший (девятый) разряд отброшен.
1 1
0010 0000 32
+1110 1100 -20
------------------- -------
1 0000 1100 = 0000 1100 = 12 12
Таблица 2 - Примеры представления чисел в дополнительном коде
Десятичное число |
Дополнительный код |
Десятичное число |
Дополнительный код |
-128 |
1000 0000 |
0 |
0000 0000 |
-127 |
1000 0001 |
1 |
0000 0001 |
-126 |
1000 0010 |
2 |
0000 0010 |
-125 |
1000 0011 |
3 |
0000 0011 |
-3 |
1111 1101 |
125 |
0111 1101 |
-2 |
1111 1110 |
126 |
0111 1110 |
-1 |
1111 1111 |
127 |
0111 1111 |