Лекция: Тема 1.4 Арифметические основы работы ЭВМ
Компьютер является цифровым устройством, а значит, любая информация представляется в виде чисел. Для записи чисел люди используют различные системы счисления.
Под системой счисления (СС) понимается способ представления любого числа с помощью алфавита символов, называемых цифрами.
Мы используем в обычной жизни, десятичную систему счисления, когда число записывается с помощью десяти цифр (0,1,…9). В компьютере для записи чисел используется двоичная СС, т.е. любое число записывается в виде сочетания двух цифр – 0 и 1. Двоичные числа проще организовать технически: 0 — нет сигнала, 1 –есть сигнал.
И десятичная СС, и двоичная СС относятся к позиционным СС, т.е. значение цифры зависит от ее расположения в записи числа. Например, два числа 456 и 654 состоят из одних и тех же символов, но обозначают разное количество, т.к. они занимают разные позиции. Любая позиционная СС характеризуется основанием. Основание СС показывает, сколько различных символов используется в данной системе счисления. Для выполнения различных арифметических операций в ЭВМ используются двоичная, восьмеричная и шестнадцатеричная системы счисления. Шестнадцатеричная и восьмеричная СС используются при составлении программ на языке машинных кодов.
В общем случае все позиционные СС можно представить в виде полинома:
(1)
Где p – основание системы счисления;
— последовательность цифр, соответствующих n, n-1, … -m разрядам;
— весовые коэффициенты этих разрядов.
Для десятичной СС p= 10, весовые коэффициенты разрядов — 10 10 10 … 10 10 …
Пример: 456,7810 = 4∙10² + 5∙10¹ + 6∙10º +7∙10-¹ + 8∙10-²
Длядвоичной СС p= 2 (цифры 0 и 1);
восьмеричной CC- p= 8 (цифры 0 – 7);
шестнадцатеричной CC – p = 16 (помимо десяти цифр, используются шесть букв латинского алфавита: A, B, C, D, E, F.)
Соответствие между системами счислений задается таблицей:
| Десятичное число | Двоичное число | Восьмеричное число | Шестнадцатеричное число |
| A | |||
| B | |||
| C | |||
| D | |||
| E | |||
| F |
Задача перевода чисел из одной системы счисления в другую часто встречается при программировании и особенно часто при программировании на языке Ассемблера. Рассмотрим правила переводов чисел:
Перевод чисел из десятичной СС в любую другую систему счисления осуществляется отдельно для целой и дробной части числа:
— целая часть числа последовательно делится на основание системы счисления, в которую осуществляется перевод до тех пор, кока последнее частное не станет меньше основания СС. Полученные от деления остатки — это символы новой СС. Запись нового числа осуществляется с последней цифры остатка.
— дробная часть последовательно умножается на основание СС, в которую осуществляется перевод. Полученные целые части в последующем умножении не участвуют и являются разрядами дробной части нового числа. Запись дробной части осуществляется в порядке получения.
Пример: переведем число 134, 75 10 в двоичную СС.
Целая часть: Дробная часть:
134/2_____ 0,75
134 67 / 2 * 2
66 33/ 2 1, 5
132 / 16/2 * 2
116 / 8 /2 1,0
8 4 /2
4 2/2
02 1
Результат перевода: 134,7510 = 10000110,112
Для перевода чисел из восьмеричной (шестнадцатеричной) системы счисления в двоичную необходимо каждую цифру восьмеричного (шестнадцатеричного) числа представить трехразрядным (четырехразрядным) кодом с помощью таблицы.
Пример:
437, 528= 100 011 111, 101 0102
8FA2, 5Е16 = 1000 1111 1010 0010, 0101 11102
При обратном переводе числа из двоичной системы счисления в восьмеричную или шестнадцатеричную число от запятой влево и вправо разбивается на триады (или по четыре разряда, в случае шестнадцатеричной СС). Если крайние группы получились неполными, их добавляют нулями. Затем каждая полученная группа цифр представляется цифрой той СС, в которую осуществляется перевод.
Пример:
101 011 001, 100 1012 = 531, 458
1010 0111 1000, 1100 00012= А78, С116
Перевод чисел из системы счисления с любым основание в десятичную СС осуществляется по формуле (1).