Попов И.И., Матвеев А.А., Максимов Н.В. Архитектура электронно-вычислительных машин и систем (2004) (1186255), страница 15
Текст из файла (страница 15)
Существуют, например,двенадцатеричная система счисления (счет идет на дюжины) или87римская система счисления.Наиболее естественный способ представления числа вкомпьютерной системе заключается в использовании строки битов,называемой двоичным числом – числом в двоичной системе счисления(символ текста тоже может быть представлен строкой битов,называемой кодом символа).Система счисления - способ именования и изображения чисел спомощью символов, имеющих определенные количественные значения.В зависимости от способа изображения чисел, системы счисленияделятся на:- непозиционные.- позиционные;В непозиционной системе счисления цифры не меняют своегоколичественного значения при изменении их расположения в числе.Непозиционные системы счисления1.
Самый простой и очевидный пример – система счисления, гдеколичество обознаается I (палочкой / единицей):1=I2=II5=IIIII10 = I I I I I I I I I I2. Пусть следующие символы (цифры в гипотетической системесчисления) соответствуют числам (десятичной системе счисления):G-1K-6O -12M - 24J - 60I - 365и пусть есть правило, по которому любое число можно записать любойкомбинацией таких символов, чтобы сумма обозначаемых ими чиселбыла равна заданному числу.Тогда 444 можно записать какIJOKG (365+60+12+6+1)KGIJO (6+1+365+60+12)т.е. IJOKG = KGIJOТакая система счисления является непозиционной, так как цифрыне меняют своего количественного значения при изменении ихрасположения в числе.В позиционной системе счисления количественное значениекаждой цифры зависит от ее места (позиции) в числе.Десятичная система счисления является позиционной, так какзначение каждой цифры зависит от ее места (позиции) в числе.88Например23 = 2×10 + 332 = 3×10 + 2и 23 ≠ 32Римская система счисления является смешанной, так как значениекаждой цифры частично зависит от ее места (позиции) в числе.
Так вчислах:VIIVIIVV обозначает 5 а I обозначает 1. Но, с другой стороны, важно какцифры расположены относительно друг друга:VII = 5 + 1 + 1 = 7VI = 5 + 1 = 6IV = 5 – 1 = 4Основание системы счисления - количество (Р) различных цифр,используемых для изображения числа в позиционной системесчисления. Значения цифр лежат в пределах от 0 до Р-1.В общем случае запись любого числа N в системе счисления соснованием Р будет представлять собой ряд (многочлен) вида:N = am-1 × Рm-1+аm-2 ×Рm-2 + ... + ak × Рk + ... + a1 × Р1 + а0 × Р0+...+ a-1 × Р-1++ а-2×Р-2 + ... + а-s×Р s.(1)Нижние индексы определяют местоположение цифры в числе(разряд):- положительные значения индексов — для целой части числа (mразрядов);- отрицательные значения — для дробной (s разрядов).Максимальное целое число, которое может быть представлено в mразрядах:Nmax = Pm-1Минимальное значащее, не равное 0 число, которое можнозаписать в s разрядах дробной части:Nmin = P-sИмея в целой части числа m, а в дробной - s разрядов, можнозаписать Pm+s разных чисел.Двоичная система счисления имеет основание Р = 2 и используетдля представления информации две цифры: 0 и 1.Существуют правила перевода чисел из одной системы счисленияв другую, основанные, в том числе, и на выражении (1).Например, двоичное число 101110,101 равно десятичному числу46,625:101110,101(2) = 1×25 + 0×24 + 1×23 + 1×22 + 1×21 + 0×20 + 1×2-1 +89+0×2-2 + 1×2-3 = 46,625(10).Практически перевод из двоичной системы в десятичную можнолегко выполнить, надписав над каждым разрядом соответствующий емувес и сложив затем произведения значений соответствующих цифр на ихвеса.Например, двоичное число 010000012 равно 6510.
Действительно,64 • 1 + 1 • 1 = 65.Вес128Цифра 064132016080402011Таким образом, для перевода числа из позиционной системысчисления с любым основанием в десятичную систему счисления можновоспользоваться выражением (1).Обратный перевод из десятичной системы счисления в системусчисления с другим основанием непосредственно по формуле (1)затруднителен,посколькувсеарифметическиедействия,предусмотренные этой формулой, следует выполнять в той системесчисления, в которую число переводится. Обратный переводвыполняется значительно проще, если предварительно преобразоватьотдельно целую и дробную части выражения (1) к видуNцел = (((…(am -1 ×Р + аm - 2) ×Р+ ... + a2 ) ×Р + a1) × Р + а0Nдр=Р - 1×(a - 1+ Р - 1×(а - 2 + Р - 1×(а - 3 +…+ Р - 1 ×(а – s+1 +Р - 1×а s)…)))Алгоритм перевода числа из десятичной системы счисления всистему счисления с основанием Р, основанный на этих выражениях,позволяет оперировать числами в той системе счисления, из которойчисло переводится, и может быть сформулирован следующим образом:При переводе смешанного числа следует переводить его целую идробную части отдельно.1.
Для перевода целой части числа ее, а затем целые частиполучающихся частных от деления, следует последовательно делить наоснование Р до тех пор, пока очередная целая часть частного неокажется равной 0. Остатки от деления, записанные последовательносправа налево, образуют целую часть числа в системе счисления соснованием Р.2. Для перевода дробной части числа ее, а затем дробные частиполучающихся произведений, следует последовательно умножать наоснование Р до тех пор, пока очередная дробная часть произведения неокажется равной 0 или не будет достигнута нужная точность дроби.Целые части произведений, записанные после запятой последовательнослева направо, образуют дробную часть числа в системе счисления соснованием Р.90Пусть требуется перевести смешанное число из десятичной вдвоичную систему счисления на примере числа 46,625.1.
Переводим целую часть числа:46:2 = 23 (остаток 0).23:2 = 11 (остаток 1).11:2 = 5 (остаток 1).5:2 = 2 (остаток 1).2:2 = 1 (остаток 0).1:2 = 0 (остаток 1).Записываем остатки последовательно справа налево – 101110, то есть4610= 10111022. Переводим дробную часть числа:0,625×2 = 1,2500,250×2 = 0,5000,500×2 = 1,000 (дробная часть равна 0 ⇒ стоп)Записываем целые части получающихся произведений послезапятой последовательно слева направо - 0,101, то есть:0,62510 = 0,1012.Окончательно: 46,62510 = 101110,1012.Кроме двоичной и десятичной при работе с компьютером частоиспользуются также двоично-десятичная и шестнадцатеричная системысчисления (табл.22).Таблица 22Перевод цифр из двоичной системы счисления в восьмеричную идесятичную и наоборот.ТриадаВосьмеричная цифраТетрадаШестнадцатеричная цифраДесятичное число0000010100111001011101110123456700000001001000110100010101100111100010011010101111001101111011110123456789АВСDEF012335678910111213141591Двоичнодесятичнаязапись0000-00000000-00010000-00100000-00110000-01000000-01010000-01100000-01110000-10000000-10010001-00000001-00010001-00100001-00110001-01000001-0101Шестнадцатеричная система счисления часто используется припрограммировании.
Перевод чисел из шестнадцатеричной системысчисления в двоичную систему счисления весьма прост - онвыполняется поразрядно.Для изображения цифр, больших 9, в шестнадцатеричной системесчисления применяются буквы А =10, В =11, С =12, D = 13, Е =14, F =15.Например, шестнадцатеричное число F17B в двоичной системевыглядит так: 1111000101111011 а в десятичной - 61819Двоично-десятичная система счисления получила большоераспространение в современных компьютерах ввиду легкости переводав десятичную систему и обратно.
Она используется там, где основноевнимание уделяется не простоте технического построения машины, аудобству работы пользователя. В этой системе счисления вседесятичные цифры отдельно кодируются, четырьмя двоичнымицифрами и в таком виде записываются последовательно друг за другом.Двоично-десятичная система не экономична с точки зренияреализации технического построения машины (примерно на 20%увеличивается требуемое оборудование), но очень удобна приподготовке задач и при программировании. В двоично-десятичнойсистеме счисления основанием системы счисления является число 10, нокаждая десятичная цифра (0, 1.....9) изображается при помощи двоичныхцифр, то есть кодируется двоичными цифрами.Для представления одной десятичной цифры используются четыредвоичных.
Здесь имеется, конечно, избыточность, поскольку 4 двоичныхцифры (или двоичная тетрада) могут изобразить не 10, а 16 чисел, но этоуже издержки производства в угоду удобству программирования.Существует целый ряд двоично-кодированных десятичных системпредставления чисел, отличающихся тем, что определенным сочетаниямнулей и единиц внутри одной тетрады поставлены в соответствие те илииные значения десятичных цифр. В наиболее часто используемойестественной двоично-кодированной десятичной системе счисления весадвоичных разрядов внутри тетрады естественны, то есть 8, 4, 2,1.Представление чисел в ЭВМВ современных ЭВМ, как известно, применяется двоичная системасчисления. Математически доказывается, что при этом на построениеЭВМ тратится наименьшее количество аппаратных средств (вентилей).Вообще, оптимальным основанием системы счисления по критерию«минимум аппаратных расходов» является основание натуральногологарифма e≈2,72. Однако по ряду существенных причин для ВМпринято R=2 (R -основание системы счисления).
Выбор критерия«минимум аппаратных расходов» исторически связан с тем, что присоздании первых ВМ применяемая элементная база была такой, что92машины получались очень дорогими и действительно большими.Достаточно вспомнить, что одна из первых электронных ВМ ENIACсодержала 17468 электронных ламп, имела размеры около 6 метров ввысоту и 26 метров в длину. Обилие применяемых вакуумных ламп,габаритные размеры машины отчасти объяснялись тем, что она работалас десятичными числами. Двоичная система счисления обладает рядомзначительных для машинной обработки свойств, что делаетцелесообразным ее применение в этой области (простота выполненияарифметических действий, применение двузначной логики и т.д.).В вычислительных машинах применяются две формыпредставления чисел:- естественная форма, или форма с фиксированной запятой(точкой) - ФЗ (ФТ);- нормальная форма, или форма с плавающей запятой (точкой) ФЗ (ФТ).В форме представления с фиксированной запятой все числаизображаются в виде последовательности цифр с постоянным для всехчисел положением запятой, отделяющей целую часть от дробной.Например, пусть числа представлены в десятичной системесчисления и имеется 5 разрядов в целой части числа (до запятой) и 5разрядов в дробной части числа (после запятой).
Числа, записанные втакую разрядную сетку, имеют вид:+00721.35500+00000.00328-10301.20260Эта форма наиболее проста, естественна, но имеет небольшойдиапазон представления чисел и поэтому чаще всего не приемлема привычислениях.Диапазон значащих чисел N в системе счисления с основанием Рпри наличии m разрядов в целой части и s разрядов в дробной частичисла (без учета знака числа) будет таким:P-s ≤ N ≤ Pm-P-sНапример, при Р = 2, m = 10 и s = 6 числа изменяются в диапазоне0,015 < N< 1024. Если в результате операции получится число,выходящее за допустимые пределы, произойдет переполнениеразрядной сетки, и дальнейшие вычисления теряют смысл.