ПРЕДСТАВЛЕНИЕИНФОРМАЦИИ В МИКРОПРОЦЕССОРНЫХ СРЕДСТВАХ. СИСТЕМЫ СЧИСЛЕНИЯ
В «Энциклопедии кибернетики» термин «вычислительнаямашина» определяется так: «Вычислительная машина – физическая система(устройство или комплекс устройств), предназначенная для механизации иавтоматизации процесса алгоритмической обработки информации и вычислений».
Информация определяет многие процессы, происходящие в вычислительноймашине. Таким образом, вычислительная машина, в общем случае, получает информацию,запоминает ее, обрабатывает по заданной программе и направляет потребителю(пользователю) или передает в другие системы обработки.
Термин «информация» в широком смысле – это отражение реальногомира, а в узком смысле – это любые сведения, являющиеся объектом хранения,передачи и преобразования. С практической же точки зрения информация всегдаподается в виде представления о событиях, явлениях природы, о состояниитехнологических производственных процессов. Сообщение от источника к приемникупосредством канала передачи поступает в материально-энергетической форме(электрический, световой, звуковой сигнал и т. п.). В этом смысле информационноесообщение можно представить функцией X (t), характеризующей изменение вовремени материально-энергетических параметров физической среды, в которойосуществляются информационные процессы.
/>
Рисунок 1.1 – Преобразование непрерывной функции
Цифровые ЭВМ используют дискретные сообщения. При этом переход отнепрерывного представления сигнала к дискретному дает значительные преимуществапри передаче, хранении и обработке информации. Для этих целей широкоиспользуются аналого-цифровые преобразователи, осуществляющие квантованиесигнала по уровню и по времени. В первом случае значения уровня сигналазаменяются набором дискретных значений с точностью ΔX (рис. 1.1), вовтором – непрерывный сигнал заменяется последовательностью импульсов длительностьюτ0, следующих через интервалы времени Δt,
/>
где Fm – максимальная составляющая частоты в спектре непрерывногосигнала.
Совокупность всех выборок образует дискретный или цифровой сигнал. Вцифровой технике такой процесс называется кодированием, а совокупностьполученных чисел – кодом сигнала. Для записи чисел цифровыми знакамииспользуются позиционные системы счисления.
Понятие о системах счисления. В общем случае система счисленияпредставляет собой совокупность приемов и правил для записи чисел цифровымизнаками (символами). При этом применяемая в практике система счисления должнаобеспечивать: запись любого числа в требуемом диапазоне величин; однозначноепредставление совокупности символов в соответствии с числом; простотуоперирования цифровыми знаками.
Все системы представления чисел делят на непозиционные и позиционные. Впервом случае количественный эквивалент цифры не зависит от места еерасположения в записи числа. Так, в римской системе счисления, если цифра,имеющая меньший количественный эквивалент, располагается справа от цифры сбольшим количественным эквивалентом, то их количественные эквивалентыскладываются, если слева то вычитаются.
Например, запись XV соответствует числу 15 (X – десять, V – пять), азапись IX – числу девять.
Непозиционные системы счисления характеризуются очень сложными игромоздкими алгоритмами представления чисел и выполнения арифметическихдействий и потому в цифровой вычислительной технике применения не нашли.
Во втором случае одна и та же цифра принимает различные числовые значенияв зависимости от местоположения (разряда) этой цифры в записи числа. Например,в десятичной системе счисления в записи 737 цифра 7 встречается дважды, однакоее количественный эквивалент в обоих разрядах различен: правая цифра 7обозначает число единиц – семь, а левая – семьсот.
Любая позиционная система счисления характеризуется основанием. Основание(базис) – число знаков или символов, используемых для представления цифр вданной системе. Возможно бесчисленное множество позиционных систем, так как заоснование можно принять любое число, образовав новую систему. В вычислительнойтехнике, например, широко используются шестнадцатеричная система счисления,запись чисел которой производится с помощью цифр и символов (букв) :0, 1,..., 9, A, B, C, D, E, F.
Для позиционной системы счисления справедливо равенство
/> (1.1)
где N – произвольное число, записанное в системе счисления с основаниемq;
a – цифры системы счисления;
n, m – число целых и дробных разрядов.
Так, например, сокращенной записи числа 737.25 соответствует его значение,вычисленное согласно равенству (1. 1):
737.25 =7 · 102 + 3 · 101 + 7 · 100+ 2· 10-1 + 5 · 10-1.
В двоичной системе счисления для представления чисел используются двецифры: 0 и 1. Действуя согласно с (1.1), значение двоичного числа, например,11110010. 0110 можно представить в следующем виде:
11110010.0110 = 1·27 + 1·26 + 1·25 + 1·24+ 0·23 + 0·22 + 1·21 + 0·20 +0·2-1 + 1·2-2 + 1·2-3 + 0·2-4.
Очевидно, десятичный эквивалент этого двоичного числа (по правиламдесятичной арифметики) будет равен 241. 375.
В табл. 1.1 приведены эквиваленты десятичных цифр в некоторых системахсчисления.
Таблица 1.1 – Эквиваленты десятичных цифр Десятичная цифра Эквиваленты в системах счисления Десятичная цифра Эквиваленты в системах счисления q = 2 q = 8 q = 16 q = 2 q = 8 Q = 16 8 1000 10 8 1 1 1 1 9 1001 11 9 2 10 2 2 10 1010 12 A 3 11 3 3 11 1011 13 B 4 100 4 4 12 1100 14 C 5 101 5 5 13 1101 15 D 6 110 6 6 14 1110 16 E 7 111 7 7 15 1111 17 F
Для записи одного и того же значения в различных системах счислениятребуется разное число позиций или разрядов. Чем меньше основание системы, тембольше длина числа (длина разрядной сетки). Если длина разрядной сетки задана,то это ограничивает максимальное по абсолютному значению число, которое можнозаписать.
Пусть длина разрядной сетки равна любому положительному числу, например,числу К. Тогда
N(q) max = qk — 1. (1.2)
Если же задано максимальное абсолютное значение числа, то длина разряднойсетки
K = log q (N(q)max = 1). (1.3)
Обычно длина обрабатываемых чисел в ЦВМ ограничена значениями: 1 байт (8разрядов), 2 байта (16 разрядов), а также 4 и 8 байт.
Преобразования чисел с различными основаниями. Для перевода целых чиселили целых частей неправильных дробей из системы счисления с основанием q1 вновую систему счисления с основанием q2 используется метод,базирующийся на делении переводимого числа на основание новой системысчисления. В соответствии с (1.1) целое число N(q1) в системе соснованием q2 записывается в виде:
N(q2) = bn-1 q2n-1 + bn-2q2n-2 + …+ b1 q21 + b0q20. (1. 4)
Представляя (1.4) по схеме Горнера, получим:
N(q2) =(…((( bn-1 q2 + bn-2)q2 + bn-3) q2…+ b1) q2+ b0 ). (1. 5)
Запись числа N(q2) в виде (1.5) раскрывает сущностьиспользуемого метода. Действительно, если разделить правую часть (1.5) навеличину основания q2, то получим целую часть (…( bn-1 q2+ bn-2 )q2 +… b1) и остаток b0.Разделив целую часть на q2, найдем второй остаток b1.
Повторяя процесс деления n раз, находим последнее частное bn-1,которое в соответствии с (1.5) является старшей цифрой n разрядного числа, представленногов системе с основанием q1. Перевод чисел арифметическими действиямидолжен производиться по правилу системы счисления с основанием q1.
Пример 1.1 Перевести десятичное число N=134 в двоичную систему счисления(q2 =2)
Ход решения приведен в табл. 1. 2.
Таблица 1. 2 – Перевод десятичного числаШаги Операция деления Частное Остаток (цифра) Разряд Примечание 1 134:2 67
b0 Младший разряд 2 67:2 33 1
b1 3 33:2 16 1
b2 4 16:2 8
b3 5 8:2 4
b4 6 4:2 2
b5 7 2:2 1
b6 8 1:2 1
b7 Старший разряд
Ответ: N =b7 b6 b5b4 b3 b2 b1 b0 =100001101.
При переводе правильных дробей из системысчисления с основанием q1 в систему счисления с основанием q2используется метод, базирующийся на умножении переводимой правильной дроби наоснование q2 новой системы счисления. Правильную дробь N(q1)в системе с основанием q2 можно представить следующим выражением:
N(q2) = b-1q2-1 + b-2 q2-2 + …+ b-m q2-m. (1.6)
По схеме Горнера (1.6) можно представить ввиде:
N(q2) = q2-1(b-1 + q2-1 (b-2 + …+ q2-1(b-(m-1) +q2-1b-m)…)). (1.7)
Если правую часть выражения (1.7) умножитьна q2, то можно найти неправильную дробь, в целой части которойбудет число b-1. Оставшуюся дробную часть следует далее умножитьвновь на q1. В полученной дроби целая часть представит собой b-2и т.д. Таким образом, m – кратное умножение позволяет найти все m цифр дробнойчасти числа в новой системе счисления. Все действия выполняются по правилам q1-арифметики.В результате описанных операций в целой части получающихся дробей будутполучены эквиваленты цифр в новой системе счисления.
Пример 1.2. Привести десятичную дробь N=0.34375 в двоичную систему счисления (q=2).
Операции перевода приведены в табл. 1.3.
Таблица 1.3 – Перевод дробного числаШаги Операция умножения Произведение Целая часть (цифра) Разряд Примечание 1 2*0.34375 0.6875
b-1 Старший разряд 2 2*0.6875 1.375 1
b-2 3 2*0.375 0.75
b-3 4 2*0.75 1.5 1
b-4 5 2*0.5 1.0 1
b-5 Младший разряд
Ответ: N(2) =0. b-1b-2 b-3 b-4 b-5 =0. 01011.
Переводя правильные дроби из одной системысчисления в другую, можно получить дробь в виде бесконечного или расходящегосяряда. В этом случае рекомендуется процесс перевода заканчивать, если появитсядробная часть, имеющая во всех разделах нули, или будет достигнута заданнаяточность перевода (получено требуемое число разрядов результата).
Естественно, что при этом возникаетпогрешность перевода чисел. В ЭВМ точность перевода обычно ограничиваетсядлиной разрядной сетки, отведенной для представления чисел.
Для удобства преобразования двоичных чиселв десятичные приведем значения веса некоторых разрядов (позиций) двоичнойсистемы счисления в пределах b15 … b-6 (см. табл. 1.4).
Таблица 1.4 – Веса разрядов двоичногочисла
215
214
213
212
211
210
29
28
27
26
25 32768 16384 8192 4096 2048 1024 512 256 128 64 32
24
23
22
21
20
2-1
2-2
2-3
2-4
2-5
2-6 16 8 4 2 1 0.5 0.25 0.125 0.0625 0.03125 0.015625
Пример 1.3 Перевести двоичное число N(2)=1101. 0101 в десятичное
Как и ранее, ход решения отобразим спомощью табл. 1. 5.
Таблица 1.5 – Перевод дробного числаШаги Двоичное число (код) Вес двоичного разряда Промежуточные значения 1 1 1 1 1 1
2-4 0,0625 1*0,0625=0,0625 2
2-3 0,125 0*0,125=0 3
2-2 0,25 1*0,25=0,25 4
2-1 0,5 0*0,5=0 5
20 1,0 1*1,0=1,0 6
21 2,0 0*2,0=0 7
22 4,0 1*4,0=4,0 8
23 8,0 1*8,0=8,0
Σ(10)=13. 3125
Ответ: десятичный эквивалент равен суммепромежуточных значений N10=13. 3125.
В информатике и вычислительной техникеразработано множество других методов перевода чисел из одной системы счисленияв другую, позволяющих получить результат с меньшими затратами времени напреобразования.
Шестнадцатеричные числа. Шестнадцатеричнаясистема счисления (Н-код происходит от hexadecimal), система с основанием 16использует символы от 0 до F. Такая форма числа удобна для записи, запоминанияи ввода с клавиатуры. Компактность достигается путем разделения бит двоичногочисла на тетрады (4 бит) и тогда число комбинаций составит 2 =16.
Пример 1.4 Представить двоичное число N2=110010111010 шестнадцатеричным N16 или NH, где Н указывает напринадлежность системы счисления к шестнадцатеричной.
Решение: надо начать с младшего бита (МБ)и разделить двоичное число на группы из четырех бит. Затем эти группы заменитьэквивалентной шестнадцатеричной цифрой. Первая группа 1010=А, вторая — 1011=В,третья — 100=С, следовательно, результат:
1010 1011 1100 =СВА16 или в Н-кодеСВАН.
Поскольку обратные преобразования врассмотренном примере не встречают затруднения, то рассмотрим преобразованиячисел из D-кода (десятичного) в Н-код и обратно.
Пример 1.5 Преобразовать десятичноедробное число в Н-код.
Решение представим в двух частях: отдельнодля целой части и для дробной.
В первом случае воспользуемся методикой,заложенной в табл. 1.2, проделаем для N =634. 328125 следующие несложныепроцедуры (рис. 1.2).
мл. разряд
/>/>Шаг 1. 634: 16 = 39, остаток 1010= А16
/>/>Шаг 1. 39: 16 = 2, остаток 710 = 716
ст. разряд
/>/>Шаг 3. 2: 16, остаток 210 = 216
63410= 2 7 А16
Рисунок1.2 – Десятично-шестнадцатеричное преобразование целой части числа
Для преобразования дробной части воспользуемся схемой операций, приведенныхв табл. 1.3. А именно, поэтапно (рис. 1.3):
/>/>/>Шаг 1. 16 · 0. 328125 = 5.25 целая часть«5» ст. разряд
/>/>
/>/>Шаг 1. 16 · 0. 25 = 4.0 целая часть «4» мл. разряд
0,328125 = 0. 5 4
Рисунок 1.3 – Десятично-шестнадцатеричный перевод дробной части числа
Пример 1.6 Обратное преобразование шестнадцатеричного числа в десятичное:N16 =5CBA. 27.
Целая часть числа в табл.1.6 получила свой десятичный эквивалент в виде N10=23738.
Таблица 1.6 – Преобразование шестнадцатеричного числа в десятичноеСтепень позиции
163
162
161
160 Результат Значение позиции 4096 256 16 1 Н-код 5 С В А 4096 256 16 1 * * * * 5 12 11 10 D-код 20480 + 3072 + 176 + 10
= 23 73816
Несколько упростив запись по сравнению стабл. 1.6, дробную часть Н-кода можно вычислить по следующей схеме, помня, что16=0.0625, а 16≈0. 0039:
Н-код 0. 2 7
/>Веспозиций 16-1 16-2 7·0,0039 = 0. 0273
/>/> 2·0,0625 = 0.1250
суммадробной части = 0. 152310
Тогда результат определяемогопреобразования равен 5CBA.27H=23738.1523D.
В отношении восьмеричных чисел ограничимсялишь замечанием, что они как и шестнадцатеричные, используются дляпредставления двоичных чисел в системе с основанием 8=23 (группа изтрех бит). Методика прямых и обратных преобразований остается аналогичной,например, шестнадцатеричной системе.
Преобразование восьмеричных вшестнадцатеричные числа производится через двоичную систему счисления.
Двоично-десятичные числа. С целью удобствапреобразования чистые двоичные числа представляются десятичными либошестнадцатеричными. Хотя двоично-десятичное преобразование является не простойоперацией, в калькуляторах и числовых приборах используют специальныйдвоично-десятичный код (DDK), когда на доступных пользователю выходах и входахиспользуются десятичные числа. При использовании двоичных чисел для кодированиядесятичных данных необходимо иметь возможность представлять цифры от 0 до 9,т.е. для изображения цифры 9 предельно требуется 4 бит для группы 10011.Однако все 4-разрядные двоичные числа, превышающие 10012,недопустимы в DDK. Чтобы освободить пользователя от подобных преобразований, всистемной программе ЭВМ предусматривается специальная команда «Десятичнаякоррекция», обеспечивающая переполнение 4-разрядного регистра при N10=10путем добавления числа 01102 (+610).
Пример 1.7. Произвести операции преобразованиядесятичного числа (D-кода) в DDK, а затем записать десятичный эквивалент(обратная задача).
Решение. Пусть имеем дело с десятичнымчислом 357910. Каждая цифра числа преобразуется прямо в свойдвоично-десятичный эквивалент из 4 бит, в результате получаем:
Десятичное число 3 5 7 9
Двоично-десятичное число 00110101 0111 1001
Ответ: 357910 =0011 0101 01111001(2-10К).
Решим обратную задачу для DDK в виде: 10000010 0110 0000.
Решение. Каждая группа из 4 бит прямопереводится в ее десятичный эквивалент:
DDK 1000 0010 0110 0000
D-код 8 2 6 0
Ответ: 1000 0010 0110 0000(2-10К)=8260D.
МП складывает чистые двоичные числа, но,как отмечалось выше, они имеют команды для преобразования результата своихсложений в двоично-десятичную форму. Полученный DDK легко затем представляетсяв десятичной форме, используя вышеописанные простые процедуры.
Литература
1. Кибернетика – основа наук – подред. проф. Карул К.В. — К. – 2009 г.
2. Основы микропроцессорных исчислений– под ред. Мозаев Г.Н. – М. – 2007 г.