Позиционные системы счисления
Системы счисления
Под системой счисления понимают совокупность приёмов и правил для записи чисел цифровыми знаками.
Различают позиционные и непозиционные системы счисления.
Примером непозиционной системы счисления является римская система использующая набор символов I, V, X, C, L, D. Эта система неэффективная, т.к. чем больше число, тем длиннее получается запись. Кроме того, значение некоторых символов меняется в зависимости от положения его в числе. Так в числах LX и XL символ Х принимает соответственно значения +10 и -10.
В позиционной системе счисления значение цифры определяется положением в числе: один и тот же знак принимает различные значения. Примером позиционной системы счисления является десятичная система счисления, известная всем со школьной скамьи. Например, в числе 222 первая цифра слова означает число двести, вторая - двадцать, третья - два. Вес числа возрастает в 10 раз при движении справа налево. Рассмотрим вещественное число 135,28:
135,28=100+30+5+0,2+0,08=1x102+3х101+5х100+2х10-1+8х10-2.
Приведённый пример записи вещественного числа в десятичной системе счисления позволяет установить общую форму записи чисел в позиционной системе счисления в виде полинома n-й степени:
A(q)=an-1qn-1+ an-2qn-2 +…+aiqi+... +a1q1 +a0q0 +a-1q-1 +...+a-mq-m,
где ai - символы алфавита системы счисления;
q - основание системы счисления;
n, m - число целых и дробных разрядов соответственно.
Пример 1.2.1. Определите значение числа, представленного двоичным кодом 101101.0112.
Решение. Число содержит целую и дробную части n=6, m=3
A(2)=1·25+0·24+1·23+1·22+0·21+1·20+0·2-1+1·2-2+1·2-3=
1·32+0·16+1·8+1·4+0·2+1·1+0·1/2+1·1/4+1·1/8=32+8+4+1+1/4+1/8=45,375
Любая позиционная система счисления характеризуется основанием (базисом). Основание позиционной системы счисления - это число знаков или символов, для изображения цифр в данной системе.
В вычислительной технике нашли применение четыре позиционные системы счисления, приведённые в табл. 1.2.1.
Таблица 1.2.1.
Наименование | Алфавит | Основание системы счисления |
Двоичная | 0,1 | |
Десятичная | 0,1,2,3,4,5,6,7,8,9 | |
Восьмеричная | 0,1,2,3,4,5,6,7 | |
Шестнадцатеричная | 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F | |
Двоично-десятичная | 0,1,2,3,4,5,6,7,8,9 |
Если задано число А(q)maх, можно определить требуемое число разрядов для его представления - n:
n=logq(Amax (q) +1)
И наоборот, если известна длина разрядной сетки n, то можно определить максимальное число Аmax(q), которое можно представить с использованием данной разрядной сетки А(q)max=qn-1.
Например, с помощью одного байта (восьми разрядов) можно представить число 255:
28 - 1 = 256 - 1 = 255,
а с помощью 15 разрядов - число 32767:
215 - 1 = 32768 - 1 = 32767.
Интервал числовой оси, заключённый между максимальным и минимальным числами называют динамическим диапазоном.
Вычислительная машина, как известно, может оперировать только с двоичными знаками, поэтому десятичные числа она предварительно переводит в двоичную систему счисления. С клавиатуры числа могут быть введены также в восьмеричном или шестнадцатеричном кодах. При выводе числовой информации на экран ЭВМ производит обратные преобразования, т.е. переводит числа из двоичной системы счисления в десятичную. Указанные преобразования осуществляются в соответствии с определёнными алгоритмами. Правила перевода приведены в табл. 1.2.2 и 1.2.3 .
Для перевода двоичных чисел в восьмеричные двоичное число делится на триады, каждая из которых переводится в соответствующее восьмеричное число:
110 111 001 101 0102 = 6713528
При обратном переводе каждое число восьмеричного кода заменяется тремя двоичными знаками:
75I2548 = 111 101 001 010 101 I002
Для перевода двоичных чисел в шестнадцатеричный или двоично-десятичный код двоичное число делится на тэтрады, каждая из которых переводится в соответствующий символ шестнадцатеричного или двоично-десятичного числа:
1100 0111 1011 01012 = С7В516,
1001 0110 0011 01002 = 96342-10.
При обратном переводе шестнадцатеричных и двоично-десятичных чисел в двоичные каждый символ заменяется кодом из четырёх двоичных символов, соответствующих коду шестнадцатеричного или двоично-десятичного числа:
AE3C16 = 1010 1110 0011 11002,
79542-10 = 0111 1001 0101 01002.