
- •«Арифметические основы эвм»
- •«Представление чисел в позиционной системе счисления. Перевод чисел из одной системы счисления в другие»
- •Теоретическая часть
- •Основное требование к эвм – обеспечить возможность кодировать и хранить представленные определенным образом числа, а также выполнять операции над ними.
- •Базис, алфавит, основание
- •Рассмотрим какое-нибудь число, например 2358765. Каждая из цифр несет двойную информацию:
- •Двоичная система счисления
- •Восьмеричная система счисления
- •Шестнадцатеричная система счисления
- •Образцы записи чисел в 2-ной, 8-ной, 16-ной системах счисления
- •Перевод чисел из одной системы счисления в другую
- •Взаимосвязь двоичной, восьмеричной и шестнадцатеричной систем счисления.
- •Практическая часть.
- •«Арифметические операции над двоичными числами без знака» теоретическая часть
- •«Предстваление чисел в прямом и дополнительном коде» теоретическая часть
- •Свойства представления чисел в дополнительном коде
- •«Операции сложения и вычитания над числами в дополнительном коде» теоретическая часть
- •«Логические основы эвм»
- •Функции алгебры логики.
- •Фиктивные аргументы фал
- •Алгоритм нахождения фиктивных аргументов.
- •Проверим фиктивность аргументов:
- •Конъюнктивная нормальная форма (кнф).
- •Конъюнктивная совершенная нормальная форма (кснф). Алгоритм перехода от табличного задания функции к кснф.
- •Графический метод минимизации фал – карты Карно.
- •Законы булевой алгебры
- •Выражение одних элементарных функций через другие:
- •Вариант № 1
- •Вариант № 2
- •Вариант № 3
- •Вариант № 4
- •Вариант № 5
- •Вариант № 6
- •Вариант № 7
- •Вариант № 8
- •Вариант № 9
- •Вариант № 10
- •Вариант № 11
- •Вариант № 12
- •Вариант № 13
- •Вариант № 14
- •Вариант № 15
«Предстваление чисел в прямом и дополнительном коде» теоретическая часть
Существует несколько соглашений о едином формате представления положительных и отрицательных чисел. Все их объединяет то, что самый старший бит слова (разряд, имеющий самый большой вес) является битом хранения знака или знаковым разрядом. Все последующие биты слова представляют значащие разряды числа. Значение 1 в знаковом разряде интерпретируется как представление всем словом отрицательного числа.
Простейшим форматом, который использует знаковый разряд является прямой код.
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
= |
+18 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
= |
-18 |
Знаковый разряд |
|
|
|
|
Как и в прямом, так и дополнительном коде старший разряд в разрядной сетке отводится для представления знака числа. Остальные разряды интерпретируются не так как в прямом коде.
Свойства представления чисел в дополнительном коде
Диапазон представления на n-разрядной сетке |
от -2n-1 до 2n-1 – 1 Например: для n= 8 от -2-7 до 27 -1 от -128 до 127 |
|||
Количество кодовых комбинаций, соответствующих числу 0 |
Одна |
|||
Отрицание |
1. Инвертировать значение в каждом разряде представления исходного числа, включая знаковый разряд, т.е. установить занчение 1 в тех разрядах, где ранее был 0, а значение 0 – в тех разрядах, где ранее было значение 1. (Эту операцию иногда называют поразрядным дополнением, а ее результат инверсным кодом). 2. Сложить образовавшееся число с числом 0…001 по правилам сложения чисел без знака. Иногда эту операцию называют вычислением дополнения числа в дополнительном коде. +18 = 00010010 (дополнительный код) Поразрядное дополнение = 11101101 + 1
11101110 = -18 Проверим правило, гласящее, что отрицание отрицания равно исходному числу -18 = 11101110 (дополнительный код) Поразрядное дополнение = 00010001 + 1
00010010 = +18 Примечание. Операция отрицания числа представленного в прямом коде выполняется очень просто – нужно инвертировать значение знакового разряда. |
|||
Расширение разрядности представления |
Добавить дополнительные разряды слева и заполнить их значением, равным значению в знаковом разряде.
+18 00010010 дополнительный код, 8 разрядов +18 00000000 00010010 дополнительный код, 16 разрядов
-18 11101110 дополнительный код, 8 разрядов -18 11111111 11101110 дополнительный код, 16 разрядов |
|||
|
Примечание. Для чисел представленных в прямом коде расширение сетки выполняется очень просто: нужно перенести знаковый разряд в крайний левый бит нового слова, а остальные биты дополнить 0. +18 00010010 прямой код, 8 разрядов |
|
+18 00000000 00010010 прямой код, 16 разрядов -18 10010010 прямой код, 8 разрядов -18 10000000 00010010 прямой код, 16 разрядов |
|||
Определение переполнения при сложении |
Если оба слагаемых имеют одинаковые знаки (оба положительны или оба отрицательны), то переполнение возможно только в том случае, когда знак суммы оказывается отличным от знаков слагаемых: |
|||
|
Знаковые разряды |
|
||
|
0 |
1 |
|
|
|
+ |
+ |
|
|
|
0 |
1 |
|
|
|
1 |
0 |
|
Положительные числа в прямом и дополнительном кодах имеют одинаковое представление.
Таблица 2. Варианты двоичного 4-разрядного представления целых чисел
Десятичное представление |
Прямой код |
Дополнительный код |
+7 |
0111 |
0111 |
+6 |
0110 |
0110 |
+5 |
0101 |
0101 |
+4 |
0100 |
0100 |
+3 |
0011 |
0011 |
+2 |
0010 |
0010 |
+1 |
0001 |
0001 |
+0 |
0000 |
0000 |
-0 |
1000 |
- |
-1 |
1001 |
1111 |
-2 |
1010 |
1110 |
-3 |
1011 |
1101 |
-4 |
1100 |
1100 |
-5 |
1101 |
1011 |
-6 |
1110 |
1010 |
-7 |
1111 |
1001 |
-8 |
- |
1000 |
Чтобы получить представление двоичного отрицательно числа в дополнительном коде нужно над модулем числа выполнить операцию отрицания.
Представить число 2710 как восьмиразрядное двоичное положительное и отрицательное число в дополнительном коде.
-27 |
2 |
|
|
|
26 |
-13 |
2 |
|
|
1 |
12 |
-6 |
2 |
|
|
1 |
6 |
-3 |
2 |
|
|
0 |
2 |
1 |
|
|
|
1 |
|
2710 = 110112
В двоичном представлении исходное число имеет 5 значащих цифр. Для восьмиразрядного представления нужно слева добавить три 0.
+27 |
= |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
|
|
Операция отрицания |
|||||||
|
+ |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
1 |
-27 |
|
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
Проверим результат, используя правило - отрицание отрицания равно исходному числу.
-27 |
|
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
|
|
Операция отрицания |
|||||||
|
+ |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
|
|
|
|
|
|
|
|
|
1 |
+27 |
|
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
Для преобразования между десятичным представление и двоичным представлением отрицательного числа в дополнительном коде можно использовать диаграмму веса разрядов. Рассмотри пример для восьмиразрядных чисел. Для получения кода заданного числа нужно набрать из чисел, соответствующих целой степени 2, положительное число, которое в сумме с числом (-128) даст необходимое число. В графах чисел, входящих в сумму нужно поставить 1, а остальные графы в этой строке заполнить 0.
Таблица 3.
Числа |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
Результаты вычислений |
-128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
||
-123 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
-128 + 4 + 1 = -123 |
-87 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
-128 + 64 + 16 + 4 + 1 = -87 |
-10 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
-128 + 64 + 32 + 16 + 4 + 2 = - 10 |
-27 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
-128 + 64 + 32 + 4 + 1 = -27 |