- •Восьмеричная и шестнадцатеричная системы счисления
- •Пример 2. Выполнить умножение шестнадцатеричных чисел 4B16 и 1C16. Проверить
- •Выполнение арифметических операций в АЛУ микропроцессора
- •Операция сложения
- •Пример 2. В 8-разрядной сетке сложить два числа –1510 и 1910. Старший разряд
- •Операция вычитания
- •Пример 1. В 8-разрядной сетке выполнить вычитание 1910–1510. Старший разряд
- •Пример 2. В 8-разрядной сетке выполнить
- •Анализ переполнения разрядной сетки
- •Пример 1. В 8-разрядной сетке выполнить сложение
Восьмеричная и шестнадцатеричная системы счисления
Пример 1. Выполнить сложение и
вычитание: |
|
|
|
|
1548(10810) и 468(3810); |
||
+ |
E716(23110) и 2F16(4710) |
||
– |
+ |
– |
|
154 |
Решение |
E7 |
|
154 |
E7 |
||
46 |
46 |
2F |
2F |
2228 |
1068 |
|
11616 |
Проверка
2228 = 14610; 1068= 7010;
B816
11616=
Пример 2. Выполнить умножение шестнадцатеричных чисел 4B16 и 1C16. Проверить
правильность вычисления.
Решение
Операции умножения и деления восьмеричных и шестнадцатеричных чисел проще выполнить, если
предварительно перевести их в двоичную систему |
||||||
* |
|
|
|
|
* |
|
счисления. |
|
|
|
|
|
|
4B |
100 1011 |
|
||||
+ 1C |
|
|
|
|
1 1100 |
|
384 |
|
|
|
|
1001011 |
|
4B |
|
|
|
|
1001011 |
|
83416 |
|
|
|
|
1001011 |
|
|
|
|
|
|
1000001101002 |
|
Ответ: 4B |
* 1C |
|
8 |
3 |
4 |
|
8 |
= 834 |
|
|
|||
16 |
? |
|
|
16 |
|
|
25316 |
|
|
Выполнить |
|||
Пример |
3 |
(самостоятельно). |
Выполнение арифметических операций в АЛУ микропроцессора
АЛУ – арифметико-логическое устройство.
В основе арифметических операций на компьютере лежат операции сложения и сдвига двоичных чисел.
Операция вычитания заменяется сложением уменьшаемого с дополнительным кодом вычитаемого.
Операции умножения и деления реализуются последовательным выполнением операций сложения и
Операция сложения
При сложении знаковый разряд участвует. Перенос из знакового разряда игнорируется. Пример 1. Используя 8-разрядную сетку сложить
два |
|
|
числа |
|
|
|
|
1510 |
и 1910. Старший разряд |
использовать |
как |
||||
знаковый. |
|
1510 = 11112 |
|
|
1910 = 100112 |
|
|
|
|
|
Решение |
и |
|||
Двоичные коды чисел: |
|||||||
Так |
как |
оба +числа положительные, то при |
сложении используются прямые коды.
0 000 1111пр
Знак +
0 001 0011пр
0 010 0010пр
Проверка
1510 + 1910 =3410
Пример 2. В 8-разрядной сетке сложить два числа –1510 и 1910. Старший разряд использовать
как знаковый.
|
|
Решение |
|
|
1910 = 100112 |
|
|
|
|
1510 |
= 11112 |
|
и |
|
|
Двоичные коды чисел: |
|
|
|
|
|||
Получим дополнительный код модуля |
|||||||
отрицательного числа |
+ |
|
|
|–1510|пр = 000 |
|||
1111пр |
|
|
|
|
|
|
|
|–1510|обр = |
111 0000обр |
|
|
|
|||
|
|
|
1 |
|
|
|
|
|–1510|доп = 111 0001доп |
|
|
|
||||
Знак – |
+ |
|
|
|
|
|
|
Выполним сложение: |
|
|
|
|
|
||
1 111 0001доп |
|
|
|
|
|
||
Перенос из знакового разряда игнорируется |
|||||||
0 001 0011пр |
|
|
|
|
|
||
1 |
|
0 000 0100пр |
|
|
|
Проверка
Операция вычитания
При выполнении операции вычитания для второго операнда (вычитаемого) предварительного выполняется операция «Изменения знака числа». Эта операция означает получение дополнительного кода
числа с учетом знакового разряда.
В результате, если вычитаемое было положительным, то оно преобразуется в дополнительный код отрицательного числа. И наоборот, если вычитаемое было отрицательным, то оно преобразуется в прямой код положительного числа.
После проведенного преобразования выполняется операция сложения.
Пример 1. В 8-разрядной сетке выполнить вычитание 1910–1510. Старший разряд
использовать как знаковый.
|
Решение |
|
1910 = 100112 |
|
|
1510 |
= 11112 |
и |
|
Двоичные коды чисел: |
|
|
||
Выполним для вычитаемого операцию |
||||
«Изменения знака числа». |
|
|
||
(1510)пр |
= 0 |
000+1111пр |
|
|
(–1510)обр= |
1 111 0000обр |
|
1
(–1510)доп = 1 111 0001доп
Выполним сложение: +
0 001 0011пр
1 111 0001доп
Перенос из знакового разряда игнорируется. Результат0 000–0100положительныйпр .
Проверка
1910 – 1510 = 410
Пример 2. В 8-разрядной сетке выполнить
вычитание 1910 – (–1510). Старший разряд использовать как
знаковый.
–|15Решение10|доп = 1 111 00012
Отрицательное число (–1510) записывается на ПК в дополнительном коде
После выполнения для вычитаемого операции «Изменение знака числа» получим:
(–1510)доп= 1 111+0001доп (1510)обр = 0 000 1110обр
1
(1510)пр = 0+ 000 1111пр
Выполним сложение:
0 001 0011пр Результат – положительный.
0 000 1111пр
0 010 0010пр
Анализ переполнения разрядной сетки
В АЛУ микропроцессора всегда осуществляется анализ результата сложения на переполнение.
Переполнение разрядной сетки возникает, когда количество разрядов недостаточно для представления числа. В этом случае старшие разряды теряются, что приводит к искажению результата.
При анализе на переполнение проверяются знаки слагаемых и суммы. Переполнения не будет в двух ситуациях:
1)если знаки слагаемых разные;
2)если знаки слагаемых одинаковые и
Пример 1. В 8-разрядной сетке выполнить сложение
10510 |
+ 6810. Указать, будет ли возникать |
||||
переполнение? |
10510 = 11010012 |
|
6810 = 10001002 |
|
|
|
|
Решение |
|
|
|
|
|
|
|
|
|
Двоичные коды чисел: |
|
и |
Выполним сложение:+
0110 1001пр
0Есть ли переполнение?
Результат
пр
Проверка |
17310 |
10510 + 6810 =Ошибка! 4510 |
|
1011012 = 1∙25 + 1∙23 + 1∙22 + 1∙20 =32 + 8 + 4 + 1 = 4510 |