Позиционные системы счисления

Системы счисления

 

Под системой счисления понимают совокупность приёмов и правил для записи чисел цифровыми знаками.

Различают позиционные и непозиционные системы счисления.

Примером непозиционной системы счисления является римская система использующая набор символов 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.