Системы счисления применяемые в ЭВМ
LXXXVIII
Как видно из примера, смысл каждого символа не зависит от того места, на котором он стоит. Так цифра X, участвуя три раза в записи числа 88, каждый раз означает одну и ту же величину - десять единиц.
В позиционной системе счисления значение цифры определяется ее положением в числе: один и тот же знак принимает различные значения. Например, в десятичном числе 333 первая цифра справа означает три единицы, соседняя с ней три десятка, а левая - три сотни. Число можно представить в виде многочлена по степеням 10: 3*102 + 3*101 + 3*100.
Любая позиционная система счисления характеризуется основанием.
Основание (базис) естественной позиционной системы счисления - число знаков или символов, используемых для изображения цифр в данной системе. Поэтому возможно бесчисленное множество позиционных систем, так как за основание можно принять любое целое число p (p>1):2,3,...,8,...,10,...,16,.., образовав новую систему. Например, возможна шестнадцатеричная система счисления, запись чисел в которой производится с помощью следующих знаков (цифр): 0,1,...,9, A, B, C, D, E, F.
Для позиционной системы счисления справедливо равенство
A(p)=a(n-1)pn-1 + ... + a1 p1 + a0 p0 + …+ a(-1)p-1+...+a(-m)p-m, (1)
где A(p) - произвольное число, записанное в системе счисления
с основанием p;
ai - цифры системы счисления;
n, m - число целых и дробных разрядов.
На практике используют сокращенную запись чисел, путем перечисления цифр ai с указанием положения запятой:
A (p) = a(n-1).. a1a0,a(-1)...a(-m) (2)
Эта последовательность цифр, стоящих в правой части равенства (2) и будет являться изображением числа A(p) в p - ичной системе счисления.
Числу 86,54 соответствует его значение, согласно (1):
86,54(10)=8*101 + 8*100 + 5*10-1 + 4*10-2.
Для примера запишем число X=135(10) в двоичной, троичной, восьмеричной и шестнадцатеричной системах счисления.
X = 10000111(2) = 12000(3) = 207(8) = 87(16).
Справедливость этих равенств можно подтвердить, используя написание числа X по формуле (1):
X(2)=1*27+0*26 +0*25+0*24+0*23+1*22+1*21+1*20=135(10);
X(3) = 1*34+2*33+0*32+0*31+0*30 = 135(10);
X(8) = 2*82+0*81+7*80 = 135(10);
X(16)= 8*161+7*160 = 135(10).
Из приведенного примера видно, что увеличение основания системы счисления делает запись числа более компактной (уменьшает потребное количество разрядов для его изображения). В этом смысле наименее экономична двоичная система счисления (в рассмотренном примере требуется восемь разрядов для записи числа вместо двух для шестнадцатеричной системы). Количество разрядов в двоичной системе счисления примерно в 3,3 раза больше потребного количества разрядов в десятичной системе счисления.
В табл. 1 приведены эквиваленты десятичных чисел в двоичной, восьмеричной и шестнадцатеричной системах счисления.
Системы счисления, применяемые в ЭВМ можно разделить на основную и вспомогательную.
Основной является система счисления, в которой представляется и хранится информация, а также выполняются все основные операции в цифровой вычислительной машине. В качестве такой системы используется двоичная система счисления. Несмотря на громоздкость записи, она имеет перед другими системами счисления значительные преимущества. Это прежде всего:
· простота конструкции элементов, представляющих каждый разряд числа. При применении двоичной системы счисления они наиболее просты, так как должны иметь только два устойчивых состояния, соответствующих цифрам 0 и 1, которые изображают коэффициенты ai в равенстве (1). Это увеличивает надежность функционирования ЭВМ;
· простота выполнения арифметических операций является свойством двоичной арифметики (см. табл. 2);
· немало важное значение при выборе основной системы счисления имеет тот факт, что в этом случае можно использовать хорошо разработанный аппарат двоичной логики.
Операции сложения, вычитания и умножения двоичных чисел представлены в табл. 2.
Таблица 1
Эквиваленты десятичных чисел в различных системах счисления
Десятичное число, р =10 | Двоичное число, р=2 | Восьмеричное число, р=8 | Шестнадцатеричное число, р=16 |
A | |||
B | |||
C | |||
D | |||
E | |||
F | |||
Операции сложения, вычитания, умножения и деления двоичных чисел выполняются по тем же правилам, которыми мы пользуемся при аналогичных действиях с десятичными числами.
Таблица 2
Двоичные операции | ||
0 + 0 = 0 | 0 - 0 = 0 | 0 * 0 = 0 |
0 +1 = 0 | 1 - 0 = 1 | 0 * 1 = 0 |
1 + 0 = 1 | 1 - 1 = 0 | 1 * 0 = 0 |
1 + 1 = 10 | 10 - 1 = 1 | 1 * 1 = 1 |
1 + 1 + 1 = 11 |
Вспомогательные системы счисления используются для ввода и вывода информации, а также для перехода из одной системы счисления к другой. В качестве вспомогательных систем счисления применяются: десятичная, восьмеричная и шестнадцатеричная системы.
Исходная числовая информация и результаты решения представляются, как правило, в десятичной системе счисления. Программа часто кодируется в шестнадцатеричной системе счисления, имеющей компактную запись, и, вместе с тем, делающей простой перевод чисел в двоичную систему счисления. Шестнадцатеричные цифры имеют 16 значений: от 0 до 15; они записываются цифрами от 0 до 9, затем идет буква А (обозначает число 10), буква B (обозначает 11) и далее от С до F (со значениями от 12 до 15). Десятичные эквиваленты чисел представлены в табл.1. Каждая шестнадцатеричная цифра соответствует комбинации четырех двоичных, т.е. 4 битам (16=24 ). Если для записи программы применяется восьмеричная система, использующая для записи числа цифры от 0 до 7, каждой цифре соответствует 3 бита (8=23).
Использование двоичной системы счисления для ЭВМ связано с необходимостью перевода вводимых в ЭВМ чисел в двоичную систему счисления и обратного преобразования числовых данных при выводе из ЭВМ. Эти преобразования осуществляются автоматически с использованием специально разработанных методов. Однако если потребуется ручной перевод при отладке программы, расчете контрольной точки и т.д., то его можно осуществить несколькими путями: для целых чисел, правильных дробей, произвольных чисел (неправильных дробей).
В цифровых вычислительных машинах все арифметические операции сводятся к операции сложения.