Системой счисления называется совокупность приемов обозначения чисел – язык, алфавитом, которого являются символы (цифры), а синтаксисом – правило, позволяющее сформулировать запись чисел однозначно. Под алфавитом понимается набор элементарных (не представимых друг через друга) элементов информации. Любое число – вернее, его запись – представляет собой набор элементов алфавита соответствующей нумерации, и, притом, должны еще учитываться некие правила, касающиеся расположения этих элементов в записи. Различие чисел определяется по их основной характеристике – величине – мере количества. Выполнение указанного условия – основа существования бесчисленного множества различных систем счисления (СС). В зависимости от способа изображения чисел с помощью цифр системы счисления делятся на позиционные и непозиционные.
1.1 Непозиционные CC
Непозиционные CC обладают одним общим свойством – независимостью веса цифры от её положения в записи числа. Алфавит содержит неограниченное количество символов, причем количественный эквивалент любой цифры постоянен, и зависит только от её начертания. К ним может быть отнесена римская запись числа, использующая символы I, V, X, L, l и другие (с некоторыми нарушениями свойства независимости веса цифры от её положения в числе, например, для чисел IV и VI).
1.2 Позиционные CC
В позиционной системе счисления число представляется в виде определенной последовательности нескольких цифр. Место каждой цифры в числе называют позицией. Первая известная нам система, построенная на позиционном принципе, - шестидесятичная вавилонская. Цифры в ней были двух видов, одним из которых обозначились "" единицы, другим - десятки. При определении числа учитывали, что цифры в каждом следующем разряде были в 60 раз больше той же самой цифры из предыдущего разряда. Запись числа была неоднозначной, так как не было цифры для определения 0. Следы вавилонской системы сохранились и до наших дней в способах измерения и записи величин углов и времени.
1.3 Понятие разряд и разрядность
Отдельные позиции, пронумерованные индексами k (-n 1.4 Понятие основание CC
Каждая цифра ak в записываемой последовательности может принимать всевозможные значения. Количество различных цифр (N), используемых для изображения чисел в позиционной системе счисления, называется основанием CC. Основание N указывает, во сколько раз единица k+1-го разряда больше единицы k-го разряда, а цифра ak соответствует количеству единиц k-го разряда, содержащихся в числе. Основание позиционной CC определяет её название.
1.5 Алфавит СС
Алфавит СС – это множество всех символов (знаков), используемых для записи чисел в данной СС с использованием определённых правил.
Количество символов в данном алфавите называется мощностью алфавита.
1.6 Диапазон представления чисел в заданной СС
Диапазон представления D чисел в данной СС – это интервал числовой оси заключенной между минимальным и максимальным числами, представленными заданными разрядами.
Лекция 2. Двоично – кодированные СС
2.1 СС с основанием 2l
Приоритетное использование в цифровой технике элементов, принимающих одно из двух значений, определило важность двоичной, а также двоично-кодированной СС, использующих для кодирования цифр двоичный алфавит {0, 1}. Особое положение среди двоично-кодированных СС занимают СС с основанием вида 2l, где l = 2, 3, 4 … Их особенность заключается в возможности кодирования цифр l – разрядными двоичными эквивалентами, при которых эти системы совпадают с двоичной СС. Практический интерес представляет СС с основаниями l = 3 и l = 4, определяющие связь двоичной СС с восьмеричной и шестнадцатеричной.
2.2 Двоично-десятичная запись числа
Двоично-десятичный код — форма записи целых чисел, когда каждый десятичный разряд кодируется тетрадой, т.е. число записывается в виде его четырёхбитного двоичного кода.
Лекция 3. Перевод чисел из одной СС в другую
3.1 Правила перевода из 2-ной СС в СС кратным 2 и обратно
2 <-> 16. Перевод из 2-ой СС в 16-ую СС. Начиная от правого края целого числа (от младшего разряда), записанного в 2-ичной нумерации, каждые 4 разряда заменяются на 1 разряд с тем же весом в 16 – ричной нумерации.
16 <-> 2. Перевод из 16-ой СС в 2-ую СС. Начиная от правого края целого числа (от младшего разряда), записанного в 16-ичной нумерации, каждый разряд заменить на 4 разряда с тем же весом в 2 – ой нумерации.
Разумеется, лидирующие нули в крайней слева “четверке” (“тетраде”) можно опустить.
Примеры перевода чисел между 2-ричной и 16-ричной нумерациями:
2 <-> 16. Тетрады 0011 0111 1100 <-> 37С
0100 7 С <-> 4F9
2 <-> 8. Триади 001 100 011 <-> 1438
1 4 3
2 <-> 4. Пары: 01 10 00 11 <-> 12034
1 2 0 3
3.2 Перевод чисел из N=i СС в десятичную
1. Переводим, используя развёрнутую запись числа, формула (1.5).
При переводе необходимо пронумеровать разряд целой части справа на лево, начиная с нулевого, и дробной части, начиная с разряда сразу после точки, слева направо (начальный номер -1). Потом вычислить сумму произведений соответствующих значений разрядов на основание СС, в степени равной номеру разряда (по правилам десятичной СС). Это и является представлением исходного числа в десятичной СС.
2. Переводим, используя схему Горнера.
Многочлен AN представленный формулой (1.5), можно отобразить в следующем виде:
Целая часть: AN = (((ap-1N + ap-2)N ... + a2)N + a1)N + a0 (1.10)
Дробная часть: AN = ((((a-1N + a-2)N ... + an-1)N + a-l)N-n (1.11)
1.1. Перевод целой части: старшая цифра умножается на основание СС(N=11), к ней добавляется следующая цифра, полученная сумма обрабатывается как старшая цифра c участием следующей цифры и так до сложения с самой младшей цифрой:
64311=(6*11+4)*11+3 [6*112+4*111+3*110]
1.2 Перевод дробной части: выполняется путём приведения дроби к целому числу с сомножителем N-l, где l – разрядность дроби.
0.64311=64311*11-3=773/113=773/1331=0.581
3.3 Перевод из десятичной СС в N= i.
1. Перевод целой части.
Для перевода целой части из десятичной СС в N = i необходимо выполнить деление числа на основание СС, в которую осуществляется перевод. Остаток от деления является младшей цифрой результата, а частное обрабатывается как исходное число с вычислением следующего остатка – следующей цифры и так до получения нулевого частного. Можно выполнять операцию без последнего деления, т.е. до вычисления частного, которое меньше основания СС. Это частное является старшей цифрой результата.
2. Перевод дробной части.
Выполняется умножением дроби на основание СС, в которую осуществляется перевод. Целая часть произведения является старшей цифрой результата, а дробная часть обрабатывается как исходное число с вычислением следующей цифры. Если целая часть равна 0, то можно завершить перевод, в противном случае результат и вычисляется заданное количество его разрядов – 3 разряда.
Лекция 4. Две основных формы представления чисел
В ЭВМ применяются две основных формы представления чисел: с плавающей точкой и фиксированной точкой (нормальная и обычная).
При представлении чисел с фиксированной точкой положения точки занимает определенное место относительно разрядов числа и сохраняется неизменным для чисел, изображенных в данной разрядной сетке. Обычно точка фиксируется перед старшим разрядом или после младшего. В первом случае в разрядной сетке будут представлены только числа, которые по модулю менее 1, во втором – только целые числа.
Для устранения недостатка формата с фиксированной точкой (слежка за положением точки и сравнительно небольшой диапазон представляемых чисел) используются числа в формате с плавающей точкой. В этом формате разряды числа разбиваются на два поля, названия, которых: мантисса и порядок.
Представление числа с плавающей точкой в общем случае имеет вид: A = m*Np
N- основание СС
p - целое число – порядок числа А.
m - мантисса числа
Для двоичной СС порядок и мантисса представляются в двоичной форме: A=m*2p
Лекция 5. Представление чисел в прямом, обратном и дополнительном кодах.
5.1 Прямой код
Самым простым машинным кодом является прямой код, который выходит при кодировании в числе только знаковой информации.
Прямым кодом числа называется его изображение в естественной форме, у которого в знаковом ряде помещается ноль, если число положительно и единица, если число отрицательно. Прямой код положительного числа совпадает с его обычным изображением в естественной форме.
Формула для образования прямого кода (1.14) правильной дроби имеет вид
|A|пр = A, если A>0;
|A|пр = 1-A, если A < 0 ;
Код знака записывается перед старшей цифрой числа и отделяется от нее точкой. Прямой код целого числа образуется по формуле (1.15)
|A|пр = A, если A>0;
|A|пр = 10n-1-A, если A < 0 ;
где 10 – число в двоичной системе исчисления, n – количество позиций в разрядной сетке.
Для общего случая (N-1) – если число отрицательно, и 0 – если число положительно, N – основа системы исчисления.
В прямом коде удобно хранить числа в памяти, перемножать, но как оказался, он плохо приспособлен для операции сложения.
Для выполнения сложения чисел в прямом коде необходимо выполнить следующие действия:
1. сравнить знаки слагаемых
2. сравнить слагаемые по модулю при неравенстве их знаков
3. выполнить соответствующую арифметическую операцию: сложение чисел при равенстве знаков и вычитания из большего по модулю более малого при неравенстве
4. присвоить сумме алгебры знак большего по модулю слагаемого
5.2 Дополнительный и обратные коды
Поскольку операция сложения проще вычитания, то для того, чтобы реализовать операцию вычитания используются модификации кода (обратный и дополнительный коды) и операция вычитания сводится к составлению в этих кодов.
Формула (2.4) образование дополнительного кода правильной дроби [A]доп=10+А (2.4)
Формула (2.5) образование обратного кода правильной дроби [A]обр = 10-10-(n-1)+A (2.5)
5.3 Модификации прямого, обратного и дополнительного кодов
При сложении чисел, меньше единицы, в машине могут быть получены числа, по абсолютной величине больше единицы.
При переполнении разрядной сетки в ЭВМ применяются модифицированные прямые, обратные и дополнительные коды. В этих кодах знак кодируется двумя разрядами, причем знаку «плюс» отвечает комбинация 00, а знаку «минус» - комбинация 11 в двоичной СС.