Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Общие принципы представления информации. Числовая система ЭВМ




При работе с информацией возникает необходимость преобразования исходного представления информации, удобного для восприятия человеком, к представлению, удобному для хранения, передачи и обработки и наоборот. Такие преобразования называются кодированием и декодированием соответственно. Перечислим несколько известных систем кодирования:

Человеческий язык – система кодирования мыслей человека посредством речи;

Азбуки – системы кодирования компонент человеческого языка с помощью графических символов;

Код Морзе (телеграфная азбука):.--. ---- -- -.-.. -..-;

Код Брайля (азбука для слепых): ;

Код морской сигнализации (морская флажковая азбука);

Двоичное кодирование: данные кодируются последовательностью 0 и 1.

История кодирования

Коды появились в глубокой древности в виде криптограмм (по-гречески - тайнописи), когда ими пользовались для засекречивания важного сообщения от тех, кому оно не было предназначено. Уже знаменитый греческий историк Геродот (V век до н. э.) приводил примеры писем, понятных лишь для одного адресата. Спартанцы имели специальный механический прибор, при помощи которого важные сообщения можно было писать особым способом, обеспечивающим сохранение тайны. Собственная секретная азбука была у Юлия Цезаря. В средние века и эпоху Возрождения над изобретением тайных шифров трудились многие выдающиеся люди, в их числе философ Фрэнсис Бэкон, крупные математики Франсуа Виет, Джероламо Кардано.

С течением времени начали появляться по-настоящему сложные шифры. Один из них, употребляемый и поныне, связан с именем ученого аббата из Вюрцбурга Тритемиуса.

Клод Шеннон, ученый, заложивший основы теории информации, показал, как можно построить криптограмму, которая не поддается никакой расшифровке, если, конечно, не известен способ ее составления.

Исторически первый код, предназначенный для передачи сообщений, связан с именем изобретателя телеграфного аппарата Сэмюэля Морзе и известен всем как азбука Морзе. В этом коде каждой букве или цифре сопоставляется своя последовательность из кратковременных (называемых точками) и длительных (тире) импульсов тока, разделяем паузами. Другой код, столь же широко распространенный в телеграфии (код Бодо), использует для кодирования два элементарных сигнала — импульс и паузу, при этом сопоставляемые буквам кодовые слова состоят из пяти таких сигналов.

Коды, использующие два различных элементарных сигнала, называются двоичными. Удобно бывает, отвлекаясь от их физической природы, обозначать эти два сигнала символами 0 и 1. Тогда кодовые слова можно представлять как последовательности из нулей и единиц.

Отметим, что наряду с двоичными кодами применяются коды, использующие не два, а большее количество кодовых символов. Число этих символов называют основанием кода, а множество кодовых символов — кодовым алфавитом.

В ЭВМ используется двоичное кодирование. Одним битом можно закодировать только два понятия 1(да) и 0(нет). Двумя битами можно закодировать четыре понятия 00, 01, 10, 11. Тремя битами можно закодировать уже восемь понятий: 000, 001, 010, 011, 100, 101, 110, 111 и т.д. Т.е. увеличивая каждый раз количество разрядов в двоичном кодировании на единицу, количество возможных кодируемых значений будет удваиваться, в общем виде можно записать: , где N – количество возможных кодируемых состояний (значений, понятий);

m – разрядность двоичного кодирования.

Для записи, хранения и выдачи по запросу информации в ЭВМ имеется Запоминающее устройство (память), организованная на электронных носителях. Один элемент памяти (бит) никакой смысловой нагрузки не несет (т.к. с помощью одного бита можно закодировать только два понятия). Однако, если соединить несколько таких элементов в ячейку, то тогда в ЗУ можно хранить столько информации, сколько потребуется. Один байт (8 бит) – элементарная ячейка памяти ЭВМ. Каждая ячейка имеет адрес и содержимое. Когда процессор обрабатывает информацию, он находит нужную ячейку памяти по ее адресу. Объем адресуемой памяти зависит от разрядности процессора (8-ми разрядный имеет 28 = 256 ячеек памяти, 16-ти разрядный – 216 = 65536 ячеек, 32-х разрядный – 232 = 4294967296 ячеек» 4 Гбайта).

Последовательность битов, рассматриваемых аппаратной частью ЭВМ как единое целое, называется машинным словом.

Числовая система ЭВМ. Целые числа без знака и со знаком.

Введем основные понятия на примере 4-х битовых машинных слов. Сразу оговоримся, что такой размер слов практического интереса не представляет, однако основные закономерности сохраняют силу для машинных слов любого размера.

Предположим, что процессор ЭВМ способен увеличивать (на 1) и дополнять (т.е. инвертировать) 4-х битовые слова. Например, слово: 0010 + 0001 = 0011 - увеличение на 1

1101 - дополнение (инвертирование)

При последовательном увеличении 4-х битового слова 0000 на 0001 наступает ситуация, когда слово станет равным 1111 (1510). Если теперь к этому слову будет прибавлена 0001, то получим 0000, т.е. неверный результат (15+1=0) и исходное состояние. Это произошло потому, что слово памяти может состоять только из конечного числа битов. Таким образом, числовая система ЭВМ является конечной и цикличной.

 

Числовая система без знака Диапазон чисел: 0 ¸ 15
0000+0001 = 0001 (+1)

0001+0001 = 0010 (+2)

0010+0001 = 0011 (+3)

0011+0001 = 0100 (+4)

………………………..

1110+0001 = 1111 (+15)

 

Этого неверного результата можно избежать, если битовое слово 1111 принять за код для «-1», тогда получим другую числовую систему со знаком, содержащую как положительные числа (0¸7), так и отрицательные (-1¸-8). Все слова, которые начинаются с «0» - положительные и нуль, а слова с «1» - отрицательные. При этом старший бит называют знаковым битом. Числовая система со знаком также конечна и циклична.

 

Числовая система со знаком. Диапазон чисел: 0 ¸ 7; -1 ¸ -8 или – 8 до +7 (- 23 до 23 - 1)
(0) 0000 (+8) 1000 (-8)

(+1) 0001 (+9) 1001 (-7)

-1
+1
(+2) 0010 (+10) 1010 (-6)

(+3) 0011 (+11) 1011 (-5)

(+4) 0100 (+12) 1100 (-4)

(+5) 0101 (+13) 1101 (-3)

(+6) 0110 (+14) 1110 (-2)

(+7) 0111 (+15) 1111 (-1)

 

Если знаковый бит = 0, то значение числа легко вычисляется (3 бита младших разрядов интерпретируются как двоичный код десятичного числа). Если знаковый бит = 1, то для оценки отрицательного числа нужно:

выполнить операцию инвертирования;

к полученному результату прибавить единицу.

Эти правила вытекают из следующих соображений. Рассмотрим число (- k) в системе со знаком, представив его как: - k = (-1- k)+1, т.е. для получения числа (- k) надо из - 1 (1111) вычесть число k и прибавить 1. При этом операция вычитания: а) всегда возможна и не требует заема; б) равнозначна операции инвертирования битов вычитаемого числа k.

Примеры. 1. Пусть k = 0011 (3). Тогда: – k = (1111 - 0011) + 0001 = 1100 + 0001 = 1101 (-3), где величина 1100 представляет собой инвертирование числа 0011 (3) или дополнение до единицы, а число 1101 называют дополнением до двух. Таким образом, инвертирование называется дополнением до единицы, а инвертирование с добавлением единицы к младшему биту называется дополнением до двух.

2. Пусть есть слово 1010. Какое отрицательное число в нем закодировано? Согласно вышеприведенным правилам это число надо инвертировать и добавить 0001. Инвертируя, получим 0101. Добавив 0001, получим 0110. А это есть двоичный код числа 6, следовательно, число 1010 есть код числа -6.

3. Определите, какие отрицательные числа закодированы в словах 1011; 1100; 1001?

Индикаторы переноса и переполнения

Рассмотрим неверный арифметический результат, который возникает из-за конечной числовой системы ЭВМ.

В числовой системе без знака это будет: 1111+0001 = 0000 (15+1 = 0) ® возникает перенос единицы из знакового бита.

В числовой системе со знаком: 1111+0001 = 0000 (-1+1 = 0 – это верно), но

0111+0001 = 1000 (7+1 = - 8 – это неверно) ® возникает перенос в знаковый бит.

Для регистрации переноса из знакового бита процессор имеет индикатор переноса (он содержит один бит информации: 1 – индикатор установлен, 0 – индикатор сброшен). Для регистрации переноса в знаковый бит процессор имеет индикатор переполнения (также 1 - установлен, 0 - сброшен). Если индикатор переноса установлен, то произошла неверная арифметическая операция в системе без знака, если сброшен, то произошла верная операция. Если индикатор переполнения установлен, то произошла неверная арифметическая в системе со знаком. Кроме того, установление или сброс индикаторов зависит еще и от выполняемой операции (например, сложение двух чисел с одинаковым знаком или сложение двух чисел с разными знаками). При конструировании ЭВМ эти условия учитываются и аппаратура разрабатывается таким образом, чтобы индикаторы переноса и переполнения давали информацию о правильности выполнения операций в целом ряде обстоятельств.

Итак, обработка числовой информации в процессоре зависит от длины машинного слова, при этом старший бит машинного слова является знаковым. Представление целых чисел в памяти ЭВМ зависит от того, сколько байт памяти отводится под целое число. Если целое число занимает 2 байта, тогда схему хранения целых чисел можно представить следующим образом:

 

Диапазон изменения таких чисел равен: - 215 до (215 – 1) (- 32768 до +32767)

 

Диапазон изменения целых чисел, которые занимают:

 

1 байт (8 бит): - 27 до (27 – 1) (- 128 до +127)

4 байта (32 бита): - 231 до (231 – 1) (-2147483648 до + 2147483647)

 

Отрицательные целые числа представляются в дополнительном коде (посредством операции дополнения до 2-х). Например, для 16-ти битового слова число «- 5» будет иметь код:

 

1111111111111011 (0000000000000101(+5) ® 1111111111111010 +00000000000000001 ® 1111111111111011)

 

Представление вещественных чисел

Любое вещественное число Х, представленное в системе счисления с основанием N, можно записать в виде: X = ± m×N±p, где m – мантисса, P – характеристика (или порядок) числа. И это число будет нормализованным, если после запятой в мантиссе стоит не нуль.

 

Примеры. а) 372,95 = 0,37295×103

0,000000343 = 0,343×10-5

б) 11010,1101 = 0,110101101×25

0,011011 = 0,11011×2-1

 

Порядок определяет, насколько разрядов необходимо осуществить сдвиг относительно запятой. Это так называемые числа с плавающей запятой.

В памяти ЭВМ вещественные числа, приведенные к нормализованной форме, хранятся следующим образом. Для 32-х битового слова:

 


Диапазон порядка: -27 до (27 – 1) (-128 до +127) (при этом один бит из восьми отводится под знак порядка).

Диапазон мантиссы: -223 до (223 – 1) (-8388608 до 8388607)

Диапазон вещественного числа: 1.1754944×E-38 до 3.4028235×E+38, где 1.1754944×E-38 - машинный нуль, а 3.4028235×E+38 – мах вещественное число, после которого будет переполнение. Мах вещ. число равно .

Порядок числа равен 128, а не 127, т.к. следует иметь в виду, что хотя для мантиссы отведены 23 разряда для одинарной точности и 55 разрядов для чисел двойной точности, в операциях участвуют 24 и 56 разрядов, т.е. имеет место скрытый разряд, который при аппаратном выполнении операций автоматически восстанавливается. Порядок числа учитывает скрытый старший разряд мантиссы.

Т.к. мантисса вещественного числа не может содержать более 7 десятичных цифр (ее мах = 8388607), компьютер при вычислениях отбрасывает лишние цифры в мантиссе, поэтому все вычисления с вещественными числами ЭВМ всегда выполняет приближенно, или с ошибкой. При более точных расчетах используются вычисления с двойной точностью. Нормализованные числа двойной точности занимают в два раза больше памяти (64 бита), под мантиссу при этом отводится 64-9 = 55 бит. В результате мантисса содержит 15 десятичных цифр. Точность расчетов возрастает в два раза.

Арифметические операции с вещественными числами сложнее арифметических операций с целыми числами. При выполнении арифметических операций над числами, представленными в формате с плавающей запятой, надо отдельно выполнять их для порядков и мантисс. При сложении – надо сначала порядки слагаемых уровнять; при умножении - порядки складываются, мантиссы перемножаются; при делении – порядки вычитаются, мантиссы делятся. После выполнения операции надо провести нормализацию результата, если это необходимо, т.е. изменить порядок. Таким образом, запятая в изображении числа все время плавает, что и определило термин: числа с «плавающей запятой».

 




Поделиться с друзьями:


Дата добавления: 2014-11-25; Просмотров: 2258; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.062 сек.