- •Введение Основные определения
- •Системы счисления Основные определения
- •Двоичная, восьмеричная и шестнадцатеричная системы счисления
- •Смешанные системы счисления
- •Перевод чисел из одной системы счисления в другую
- •Арифметические действия в системах счисления с основанием, отличным от 10
- •Двоично-восьмеричные и двоично-шестнадцатеричные преобразования
- •Обратный и дополнительный коды и их применение в операциях с отрицательными числами
- •Сложение и вычитание чисел со знаком в дополнительном коде
- •Архитектура персонального компьютера История развития вычислительной техники
- •Основные термины и определения
- •Функциональная структура компьютера
- •Архитектура микропроцессора
- •Регистры общего назначения и сегментные регистры
- •Управляющие регистры Регистр cr0.
- •Память компьютера
- •Структура программы на языке Ассемблера Формат кодирования в языке Ассемблера
- •Структура программы на ассемблере
- •Простейшая программа в ос Windows
- •Типы и форматы данных в ассемблере
- •Базовая система команд микропроцессора ia-32
- •Операнды языка ассемблер
- •Стандартные директивы сегментации
- •Макрокоманды
- •Процедуры (функции)
- •Организация интерфейса с процедурой
- •Возврат результата из процедуры
- •Связь ассемблера с языками высокого уровня
- •Обработка прерываний
- •Создание исполняемого файла
- •Отладка программы
- •Математический сопроцессор
- •Представление чисел с плавающей точкой в разрядной сетке вычислительной машины
- •Архитектура сопроцессора
- •Система команд сопроцессора
- •Команды передачи данных
- •Команды загрузки констант
- •Команды сравнения данных
- •Арифметические команды
- •Команды управления математическим сопроцессором
- •Пример программы с использованием команд сопроцессора
- •Сложные типы данных Структуры
- •Объединения
- •Программирование для windows
- •Основы программирования в ос Windows
- •Консольные приложения Windows
- •Работа с файлами в системе Windows
- •Вывод чисел в консоль
- •Оконные (каркасные) приложения Windows
- •Графика в оконных приложениях Windows
- •Ресурсы в Windows-приложениях
- •Приложение 1
Арифметические действия в системах счисления с основанием, отличным от 10
Выполнение арифметических действий в любых позиционных системах счисления производится по тем же правилам, которые используются в десятичной системе счисления.
Так же, как и в десятичной системе счисления, для выполнения арифметических действий необходимо знать таблицы сложения (вычитания) и умножения. Ниже представлены данные таблицы для двоичной системы счисления
Таблица 1
Сложение |
Вычитание |
Умножение |
0 + 0 = 0 |
0 – 0 = 0 |
0 ∙ 0 = 0 |
0 + 1 = 1 |
1 – 0 = 1 |
0 ∙ 1 = 0 |
1 + 0 = 1 |
1 – 1 = 0 |
1 ∙ 0 = 0 |
1 + 1 = 10 |
10 – 1 = 1 |
1 ∙ 1 = 1 |
Пользуясь приведенными таблицами, произведем арифметические операции над двоичными числами.
В тех случаях, когда занимается единица старшего разряда, она дает две единицы младшего разряда. Если занимается единица через несколько разрядов, то она дает единицы во всех промежуточных нулевых разрядах и две единицы в младшем нулевом разряде.
Рассмотрим операции умножения и деления двоичных чисел.
Зная операции двоичной арифметики, можно переводить числа из двоичной системы счисления в любую другую.
Пример: Перевести число 1011110112 в десятичную систему счисления.
Поскольку 1010 = 10102, запишем
Полученные остатки, =10012 = 910, =1112 = 710, =112 = 310. Искомое число 1011110112 = 37910.
В случае перевода чисел из одной недесятичной системы в другую возникает сложность выполнения действий в недесятичной системе счисления. В этом случае удобнее может быть делать перевод в два этапа m10q, где m и q – основания систем счисления соответственно.
Двоично-восьмеричные и двоично-шестнадцатеричные преобразования
Двоичная система счисления удобна для выполнения аппаратными средствами микропроцессора арифметических действий, но неудобна для восприятия человеком, поскольку требует много разрядов. Поэтому в вычислительной технике помимо двоичной системы счисления широкое применение нашли восьмеричная и шестнадцатеричная системы счисления.
Рассмотрим перевод чисел из двоичной системы счисления в восьмеричную.
Запишем число x в полиномиальной форме. Получим
Разделим обе части полученного выражения на 8. Учитывая, что 8 = 23, получим
.
Таким образом, остаток от деления , что является двоичным разложением десятичного числа, лежащего в диапазоне [0; 7] (для изображения данной десятичной цифры в двоичной системе счисления требуется 3 разряда).
Таким образом, чтобы преобразовать двоичное число в восьмеричное, нужно объединить двоичные цифры в группы по 3 разряда справа налево. При необходимости в начале исходного числа нужно добавить незначащие нули. Затем каждая триада заменяется восьмеричной цифрой.
Пример: Преобразовать число 11011102 в восьмеричную систему счисления.
Объединяем двоичные цифры триады справа налево. Получаем
001 101 1102 = 1568.
Аналогичным образом производятся преобразования из двоичной системы счисления в шестнадцатеричную, только двоичные цифры объединяются в группы по 4 разряда (тетрады).
Пример: Преобразовать число 11011102 в шестнадцатеричную систему счисления.
Объединяем двоичные цифры триады справа налево. Получаем
0110 11102 = 6E16.