- •Раздел 2 принципы построения и функционирования эвм и вычислительных систем (вс)
- •2.1. Структура эвм
- •2.2. Системы счисления
- •2.3. Формы представления чисел
- •2.3.1. Форма представления чисел с фиксированной точкой
- •2.3.2. Форма представления чисел с плавающей точкой
- •2.3.3. Форматы двоично-десятичных чисел
- •2.3. Машинные коды
- •2.3.1. Прямой код
- •2.3.2. Обратный код
- •2.3.3. Дополнительный код
- •2.4. Перевод чисел из одной системы представления в другую
- •2.4.1. Перевод между основаниями, составляющими степень двойки
- •2.4.2. Перевод целого числа из десятичного счисления в другое
- •2.4.3. Перевод дробного числа из десятичного счисления в другое
- •2.4.4. Перевод чисел в десятичную систему счисления
- •2.5. Арифметические действия над двоичными числами
- •2.5.1. Сложение
- •2.5.2. Вычитание
- •2.5.3. Умножение
- •2.5.4. Деление
- •2.6. Понятие алгебры логики
- •2.7. Простейшие логические функции
- •2.7.1. Логическая операция конъюнкция (логическое умножение)
- •2.7.2. Логическая операция дизъюнкция (логическое сложение)
- •2.7.3. Логическая операция инверсия (отрицание)
- •2.7.4. Логическая операция сложение по модулю 2
- •2.7.5. Логическая операция эквивалентность (функция тождества)
- •2.7.6. Логическая операция импликация (логическое следование)
- •2.7.7. Функция Шеффера
- •2.7.8. Стрелка Пирса ав, или функция Вебба a b
- •2.8. Основные правила преобразования формул
- •2.9. Кодирование текстовой информации
- •2.10. Составные части компьютера
- •2.11. Логические элементы
- •2.12. Триггеры
- •2.12.1. Общие сведения о триггерах
- •2.12.2. Асинхронный rs-триггер
- •2.12.3. Синхронный rs-триггер
- •2.12.3. Двухтактный rs-триггер
- •2.12.4. Асинхронный и синхронный d-триггеры
- •2.12.5. T-триггер
- •2.12.6. Jk-триггер
- •2.13. Типовые узлы комбинационного типа
- •2.13.1. Дешифраторы
- •2.13.2. Одноразрядный сумматор
- •2.13.3. Полусумматор
- •2.13.4. Многоразрядные сумматоры
- •2.13.5. Двоично-десятичные сумматоры
- •2.13.6. Мультиплексоры
- •2.13.7. Демультиплексоры
- •2.14. Типовые узлы накапливающего типа
- •2.14.1. Регистры
- •2.14.2. Счетчики
- •2.14.3. Двоично-десятичные счетчики
- •2.15. Классификация архитектур системы команд
- •2.15.1. Классификация по составу и сложности команд
- •2.15.2. Классификация по месту хранения операндов
- •2.15.3. Стековая архитектура
- •2.15.4. Аккумуляторная архитектура
- •2.15.5. Регистровая архитектура
- •2.15.6. Архитектура с выделенным доступом к памяти
- •2.16. Типы команд
- •2.16.1. Команды пересылки данных
- •2.16.2. Команды арифметической и логической обработки
- •2.16.3. Операции с целыми числами
- •2.16.4. Операции с числами в форме с плавающей запятой
- •2.16.5. Логические операции
- •2.16.6. Операции сдвигов
- •2.16.7. Операции с десятичными числами
- •2.16.8. Simd-команды
- •2.16.9. Команды для работы со строками
- •2.16.10. Команды преобразования
- •2.16.11. Команды ввода/вывода
- •2.16.12. Команды управления системой
- •2.16.13. Команды управления потоком команд
- •2.17. Формат команд
- •2.17.1. Длина команды
- •2.17.2. Разрядность полей команды
- •2.17.3. Выбор адресности команд
- •2.18. Способы адресации операндов
- •2.18.1. Непосредственная адресация
- •2.18.2. Прямая адресация
- •2.18.3. Косвенная адресация
- •2.18.4. Регистровая адресация
- •2.18.5. Косвенная регистровая адресация
- •2.18.6. Адресация со смещением
- •2.18.7. Относительная адресация
- •2.18.8. Базовая регистровая адресация
- •2.18.9. Индексная адресация
- •2.18.10. Страничная адресация
- •2.18.11. Блочная адресация
- •2.18.12. Распространенность различных видов адресации
- •2.19. Способы адресации в командах управления потоком команд
- •2.20. Функциональная организация фон-неймановской вычислительной машины
- •2.20.1. Устройство управления
- •2.20.2. Арифметико-логическое устройство
- •2.20.3. Основная память
- •2.20.4. Модуль ввода/вывода
- •2.21. Цикл команды
- •2.21.1. Стандартный цикл команды
- •2.21.2. Описание стандартных циклов команды для гипотетической машины
- •2.21.3. Машинный цикл с косвенной адресацией
2.4. Перевод чисел из одной системы представления в другую
Перевод чисел, как целых, так и дробных, составляет важную часть машинной арифметики. Наиболее просто выполняются переводы между основаниями, составляющими степень двойки.
2.4.1. Перевод между основаниями, составляющими степень двойки
Для того, чтобы из восьмеричного счисления перевести число в двоичный код, необходимо каждую цифру этого числа представить триадой двоичных символов. Лишние нули в старших разрядах отбрасываются. Например:
1234,7778 = 001 010 011 100, 111 111 1112 = 1 010 011 100, 111 111 1112;
12345678 = 001 010 011 100 101 110 1112 = 1 010 011 100 101 110 1112;
123456,0078 = 001 010 011 100 101 110,000 000 1112 =
= 1 010 011 100 101 110, 000 000 1112.
Обратный перевод производится также просто: каждая триада двоичных цифр заменяется восьмеричной цифрой. Для правильного перевода число должно быть выровнено, т. е. число двоичных знаков должно быть кратно трем. Выравнивание производится простым дописыванием требуемого количества нулей перед старшим разрядом для целой части числа, за последним разрядом для дробной части. Например:
11001112 = 001 100 1112 = 1478;
11,10012 = 011, 100 1002 = 3,448;
110,01112 = 110, 011 1002 = 6,348.
При переводах между двоичным и шестнадцатеричным счислениями используются четверки двоичных чисел. При необходимости выравнивание выполняется до длины двоичного числа, кратной четырем.
1234,АВ7716 = 0001 0010 0011 0100,1010 1011 0111 01112 =
= 1 0010 0011 0100,1010 1011 0111 01112;
СE456716= 1100 1110 0100 0101 0110 01112;
0,1234АА16 = 0,0001 0010 0011 0100 1010 10102;
11001112 = 0110 01112 = 6716;
110,01110012 = 0110, 0111 00102 = 6,7216.
При переходе из восьмеричного счисления в шестнадцатеричное счисление и обратно используется вспомогательный, двоичный код числа, Например:
12345678 = 001 010 011 100 101 110 1112 = 0101 0011 1001 0111 01112 = =5397716;
0,120348 = 0,001 010 000 011 1002 = 0,0010 1000 0011 10002 = 0,283816;
120,348 = 001 010 000, 011 1002 = 0101 0000,0111 00002 = 50,716;
1234,АВ7716 = 0001 0010 0011 0100, 1010 1011 0111 01112 =
= 001 001 000 110 100,101 010 110 111 011 1002 = 11064,5267348;
СЕ456716 = 1100 1110 0100 0101 0110 01112 =
= 110 011 100 100 010 101 100 1112 =634425478;
0,1234АА16 = 0, 0001 0010 0011 0100 1010 10102 =
= 0,000 100 100 011 010 010 101 0102= 0,044322528.
2.4.2. Перевод целого числа из десятичного счисления в другое
Для того чтобы перевести десятичное число в систему счисления с основанием n надо:
1. Последовательно делить заданное число и получаемые целые части на новое основание счисления до тех пор, пока целая часть не станет меньше нового основания счисления.
2. Полученные остатки от деления, представленные цифрами из нового счисления, записать в виде числа, начиная с последней целой части.
Перевод в двоичную систему счисления:
147 |
2 |
|
|
|
|
|
|
||||
-146 |
73 |
2 |
|
|
|
|
|
||||
1 |
-72 |
36 |
2 |
|
|
|
|
||||
|
1 |
-36 |
18 |
2 |
|
|
|
||||
|
|
0 |
-18 |
9 |
2 |
|
|
||||
|
|
|
0 |
-8 |
4 |
2 |
|
||||
|
|
|
|
1 |
-4 |
2 |
2 |
||||
|
|
|
|
|
0 |
-2 |
1 |
||||
А2 = 100100112 |
|
|
0 |
|
|||||||
|
|
|
|
|
|
|
|
Перевод в восьмеричную систему счисления:
147 |
8 |
|
-144 |
18 |
8 |
3 |
-16 |
2 |
|
2 |
|
|
|
|
А8 = 2238 |
Перевод в шестнадцатеричную систему счисления:
147 |
16 |
-144 |
9 |
3 |
|
|
|
А16 = 9316 |