logo
Часть первая -3 октября

Способы кодирования информации в цвм

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

Характер символов, применяющихся для кодирования информации, зависит от используемого алфавита - конечного списка различных букв, цифр или любых других знаков, используемых в соответствующем языке. Комбинации, составленные из символов по правилам используемого языка, называют кодами.

Рассмотрим некоторые цифровые коды, нашедшие широкое распространение для представления информации в ЦВМ (включая цифровое представление буквенных текстов) .

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

Римская система относится к непозиционным системам, в которых “вес” цифры (количество, ею изображаемое) не зависит от места расположения этой цифры в числе, т. е. постоянен. Непозиционные системы счисления в силу указанного свойства неудобны в пользовании и в настоящее время почти не применяются.

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

где р- основание системы счисления, или объем цифрового алфавита (количество различных цифровых символов, входящих в этот алфавит); n - количество разрядов числа;i- порядковый номер разряда;цифра) .

Рассмотрим свойства позиционных систем счисления на примере десятичной системы. Для записи чисел в ней используется десять различных знаков - цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9. Эти цифры обозначают десять последовательных целых чисел, начиная с нуля и кончая девятью. Количество «десять» изображают уже двумя цифрами: 1 и 0. Остальные числа записывают в виде последовательностей цифр, разделенных запятой на целую и дробные части, причем значение каждой цифры изменяется с изменением ее положения (позиции) в этой последовательности.

Так, в записи 121,12 единица, стоящая слева на первом месте, означает количество сотен; единица, стоящая перед запятой, - количество единиц, а единица, стоящая после запятой, - количество десятых долей, содержащихся в числе. Последовательность цифр 121,12 представляет собой не что иное, как сокращенную запись выражения

Точно также

.

Напомним, что количество различных цифр, применяемых в позиционной системе счисления, называют ее основанием (основанием десятичной системы счисления служит число «десять»).

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

Если буквы

обозначают цифры системы счисления с основанием p, то последовательность цифр

обозначает число, равное сумме произведений вида

Обычно в качестве двух младших цифр (соответствующих числам «нуль» и «один») во всех позиционных системах счисления используют знаки «0» и «1». При этом основание системы счисления рзаписывают в данной системе всегда в виде последовательности цифр “1” и “0”. Принимая за основание системы число «восемь», получим восьмеричную систему. В этой системе счисления для записи всевозможных чисел применяют восемь различных цифр: 0, 1, 2, 3, 4, 5, 6, 7, обозначающих целые последовательные числа, начиная с нуля и кончая семью. Количество «восемь» записывают двумя цифрами в виде «10». Остальные числа представляют в виде последовательностей цифр. Количество 215, которое в десятичной системе имеет начертание 215, в восьмеричной системе будет записано так:

Здесь комбинация символов 10 соответствует значению «восемь» в десятичной системе. Нам более привычна десятичная запись чисел. Поэтому для проверки правильности восьмеричного изображения десятичного числа «двести пятнадцать» представим правую часть последнего равенства в десятичной системе. Получим

При подготовке задач для решения на ЦВМ применяют запись чисел как в восьмеричной, так и в шестнадцатеричной системе. Эти системы используют для записи команд программы решения задачи и некоторых констант. В шестнадцатеричной системе счисления для обозначения цифр используется 16 различных символов. В состав алфавита этой системы включены десятичные цифры, а для обозначения остальных шести символов применяют латинские заглавные буквы А, В, С, D, Е, F. Меньше всего различных цифр требуется в двоичной системе счисления - всего лишь две цифры: 0 и 1 (обозначающие целые числа «нуль» и «единицу»). Основание этой системы «два» - записывают тоже двумя цифрами: 10. Целые числа, начиная с трех и кончая семью, представляют так: 11, 100, 101, 110, 111. Число 215в двоичной системе будет выглядеть так:

Здесь теперь 10 означает число «два». Показатели степени записаны здесь тоже в двоичной системе счисления. Для проверки правильности двоичной записи представим правую часть последнего равенства в десятичной системе. Получим:

В таблице приведены числовые коды одних и тех же количеств, записанные в разных системах счисления.

Десяти-чные

Двои-чные

Восьмиричные

Шестнадцатиричные

Десятичные

Двоичные

Восьмиричные

Шестнадцатиричные

0

0000

0

0

8

1000

10

8

1

0001

1

1

9

1001

11

9

2

0010

2

2

10

1010

12

A

3

0011

3

3

11

1011

13

B

4

0100

4

4

12

1100

14

C

5

0101

5

5

13

1101

15

D

6

0110

6

6

14

1110

16

E

7

0111

7

7

15

1111

17

F

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

Выполнение операций сложения, вычитания, умножения и деления в двоичной системе счисления представлено ниже.

Двоичная Двоичная Двоичная

таблица сложения таблица вычитания таблица умножения

0+0= 0 0-0=0 0*0=0

1+0= 1 1-0=1 1*0=0

0+1= 1 1-1=0 0*1=0

1+1=10 10-1=11*1=1

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

Сложение Вычитание

1100111,011 10110,1101

+ -

10011,111 10001,1111

------------------- --------------------

1111011,010 100,1110

Умножение Деление

_ 11011101101 | 1001

11000101 1001 -------------

* 1001 ------------------ 11000101

-------------- _ 1001

+ 11000101 1001

11000101 -----------------

------------------- -1011

11011101101 1001

------------------

_1001

1001

------------------

0000

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

Например, десятичное число 25,894, записанное в двоично-десятичном коде, будет иметь вид:

2 5 , 8 9 4

0010 0101, 1000 1001 0100

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

При переводе чисел из двоично-десятичного кода в десятичную систему двоично-десятичное число разбивается на тетрады, начиная с запятой влево и вправо, и каждая тетрада заменяется эквивалентной ей десятичной цифрой, неполные тетрады дополняются до полных нулями. Например, 0111 0001 0100 , 0100 соответствует десятичному числу 714,4.

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

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

В случае использования естественной формы число представляется как совокупность целой части числа и отделенной от нее запятой дробной части. Место запятой фиксировано, поэтому для целой и дробной частей числа выделяется конкретное количество разрядов отведенного поля памяти.

Например, если для целой и дробной частей числа отводится по три десятичных разряда, то число 635,4 будет представляться в виде +635,400, а число -8,481 в виде -008,481. Очевидно, что в таком поле памяти можно хранить числа, расположенные в диапазоне от 000,001 до 999,999. Числа, меньшие 0,001, представить в таком поле нельзя, а наименьшее число 0,001 определяет точность представления чисел в данном поле памяти.

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

864,455

+

135,546

------------

1000,001

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

Числа с фиксированной запятой в этом случае представляются только группой цифр, следующих после запятой (ноль целых и запятая в коде числа не присутствуют и в памяти не хранятся).

Более удобной является нормальная форма представления чисел, в которой для их изображения используются произведения пар сомножителей вида:

где m- мантисса (цифровая часть числа); р- основание системы счисления; q- порядок числа. При этом для мантиссыmдолжно выполняться условие| m | < 1. Например, число 6,42 в нормальной форме можно записать так:

,

и так далее.

Порядок указывает действительное положение запятой в числе и может быть как положительным, так и отрицательным. Например:

.

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

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

В отведенном для изображения нормализованного числа поле памяти оно представляется в форме двух наборов цифр, один из которых содержит мантиссу, а другой - порядок. Как и при использовании естественной формы, ноль целых и запятая в мантиссе не представлены. Перед изображениями мантиссы и порядка размещаются соответствующие знаки. Например, числа ибудут записаны в память в виде +625+01 и -625-02 соответственно. Использование нормального представления чисел в ЦВМ существенно расширяет диапазон обрабатываемых машиной данных и упрощает процесс подготовки задач к решению.

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

Множество символов компьютера определяется специальной таблицей кодировки. Кодовая таблица персонального компьютера содержит 256 символов, а код носит название ASCII. В ASCII символы с кодами от 0 до 127 используются для представления цифр, арифметических операций, букв латинского алфавита, знаков пунктуации и управления процессами.

Символы с кодами от 128 до 255 являются дополнительными и их начертание зависит от страны, где используется данный компьютер.

Эта часть таблицы используется для представления символов псевдографики и букв национального алфавита. В странах СНГ наиболее широкое распространение получила русская альтернативная дополнительная таблица, приведенная выше(нумерация шестнадцатеричная).

Представление в коде ASCII текста на русском языке

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

М

А

М

А

16

80

80

10

140

128

140

128

8

214

200

214

200

2

10001100

10000000

10001100

10000000