Способы кодирования информации в цвм
Очевидно, что подлежащие обработке в ЦВМ сообщения должны быть предварительно закодированы, т.е. изображены в виде наборов некоторых символов (кодовых комбинаций). Эти наборы в свою очередь представляются в технических устройствах, хранящих и обрабатывающих информацию, наборами сигналов некоторой физической природы или состояний элементов, используемых в устройствах.
Характер символов, применяющихся для кодирования информации, зависит от используемого алфавита - конечного списка различных букв, цифр или любых других знаков, используемых в соответствующем языке. Комбинации, составленные из символов по правилам используемого языка, называют кодами.
Рассмотрим некоторые цифровые коды, нашедшие широкое распространение для представления информации в ЦВМ (включая цифровое представление буквенных алфавитов).
Кодирование цифровой информации. Цифровые алфавиты для кодирования величин называют системами счисления. Среди бесконечного набора таких систем широко известны, по крайней мере, две системы - римская и десятичная.
Римская система относится к непозиционным системам, в которых “вес” цифры (количество, ею изображаемое) не зависит от места расположения этой цифры в числе, т. е. постоянен. Непозиционные системы счисления в силу указанного свойства неудобны в пользовании и в настоящее время практически не применяются.
Десятичная система - позиционная, в ней вес каждой цифры переменный и определяется местом (позицией), занимаемым этой цифрой в числе. В любой позиционной системе счисления некоторое число может быть определено выражением:
где р - основание системы счисления, или объем цифрового алфавита (количество различных цифровых символов, входящих в этот алфавит); n - количество разрядов числа; i - порядковый номер разряда; цифра - коэффициент (одна из цифр входящих в используемый алфавит) .
Рассмотрим свойства позиционных систем счисления на примере десятичной системы. Для записи чисел в ней используется десять различных знаков - цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9. Эти цифры обозначают десять последовательных целых чисел, начиная с нуля и кончая девятью. Количество «десять» изображают уже двумя цифрами: 1 и 0. Остальные числа записывают в виде последовательностей цифр, разделенных запятой на целую и дробные части, причем значение каждой цифры изменяется с изменением ее положения (позиции) в этой последовательности.
Так, в записи 121,12 единица, стоящая слева на первом месте, означает количество сотен; единица, стоящая перед запятой, - количество единиц, а единица, стоящая после запятой, - количество десятых долей, содержащихся в числе. Последовательность цифр 121,12 представляет собой не что иное, как сокращенную запись выражения
Точно также
Напомним, что количество различных цифр, применяемых в позиционной системе счисления, называют ее основанием (основанием десятичной системы счисления служит число «десять»).
Вообще, в позиционной системе счисления с основанием р используется р различающихся между собой цифр, обозначающих последовательные целые числа, начиная с нуля и заканчивая числом P–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 означает число «два». Показатели степени записаны здесь тоже в двоичной системе счисления. Для проверки правильности двоичной записи представим правую часть последнего равенства в десятичной системе. Получим:
В таблице приведены числовые коды одних и тех же количеств, записанные в разных системах счисления:
Десятичные | Двоичные | Восьмричные | Шестнадцатиричные | Десятичные | Двоичнчные | Восьмиричные | Шестнадцатиричные |
A | |||||||
B | |||||||
C | |||||||
D | |||||||
E | |||||||
F |
Таблицы сложения, вычитания и умножения двоичных чисел чрезвычайно просты. С помощью этих таблиц сложение вычитание, умножение и деление двоичных чисел выполняются по тем же правилам, по которым мы привыкли складывать, вычитать, умножать и делить десятичные числа.
Выполнение операций сложения, вычитания, умножения и деления в двоичной системе счисления представлено ниже.
С уменьшением основания системы счисления (упрощением алфавита) происходит удлинение кодовой комбинации, изображающей одно и то же количество. Однако при
передаче и электронной обработке информации наиболее удобной оказывается именно двоичная система счисления. При кодировании информации в этой системе достигается относительная минимизация количества необходимых для ее хранения элементов, а сами элементы могут быть простыми и надежными. Благодаря этим особенностям, а также чрезвычайной простоте организации операций над числами двоичная система используется в ЦВМ в подавляющем большинстве случаев.
При организации ввода данных в ЦВМ удобной формой записи чисел является двоично-десятичный код, для изображения десятичных цифр в котором используется четыре двоичных разряда (тетрада). Перевод в двоично-десятичный код выполняется на устройствах ввода данных, при этом каждая десятичная цифра просто заменяется соответствующей ей двоичной тетрадой (см. таблицу кодов) .
Например, десятичное число 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. Такое явление называют переполнением разрядной сетки.
Для уменьшения вероятности переполнения при кодировании числовой информации в естественной форме запятая обычно фиксируется перед старшим цифровым разрядом, т. е. используются числа, меньшие единицы. Это исключает возможность переполнения при выполнении операции умножения (наиболее опасной с точки зрения переполнения разрядной сетки), так как результат всегда будет меньше единицы.
Числа с фиксированной запятой в этом случае представляются только группой цифр, следующих после запятой (ноль целых и запятая в коде числа не присутствуют и в памяти не хранятся).
Более удобной является нормальная форма представления чисел, в которой для их изображения используются произведения пар сомножителей вида:
где m - мантисса (цифровая часть числа); р - основание системы счисления; q - порядок числа. При этом для мантиссы m должно выполняться условие | m | < 1. Например, число 6,42 в нормальной форме можно записать так:
,
и так далее.
Порядок указывает действительное положение запятой в числе и может быть как положительным, так и отрицательным. Например:
Если мантисса числа, представленного в нормальной форме, удовлетворяет условию , то число называют нормализованным. У таких чисел первая цифра мантиссы всегда отлична от нуля. Число в памяти машины желательно хранить в нормализованном виде, при этом в поле памяти будет представлено максимальное количество цифр его мантиссы. Нормализация числа осуществляется сдвигом числа влево и соответствующим уменьшением его порядка.
При выполнении арифметических операций над числами, представленными в нормальной форме, возможность переполнения не исключается, например, при сложении, однако, сдвинув мантиссу вправо и увеличив порядок, результат можно исправить. Восстановление нормализации выполняется машиной автоматически в процессе обработки данных, поэтому сбои счета в результате переполнения происходят сравнительно редко.
В отведенном для изображения нормализованного числа поле памяти оно представляется в форме двух наборов цифр, один из которых содержит мантиссу, а другой - порядок. Как и при использовании естественной формы, ноль целых и запятая в мантиссе не представлены. Перед изображениями мантиссы и порядка размещаются соответствующие знаки. Например, числа +0.625*101 и -0.625*10-2 будут записаны в память в виде +625+01 и -625-02 соответственно. Использование нормального представления чисел в ЦВМ существенно расширяет диапазон обрабатываемых машиной данных и упрощает процесс подготовки задач к решению.
Кодирование алфавитно-цифровой информации.В современных цифровых вычислительных машинах с помощью двоичных кодов можно изображать, хранить и обрабатывать не только числовую, но и любую другую алфавитно-цифровую информацию. Множество символов компьютера определяется специальной таблицей кодировки:
Кодовая таблица персонального компьютера содержит 256 символов, а код носит название ASCII. В ASCII символы с кодами от 0 до 127 используются для представления цифр, арифметических операций, букв латинского алфавита, знаков пунктуации и управления процессами. Символы с кодами от 128 до 255 являются дополнительными, и их начертание зависит от страны, где используется данный компьютер. Эта часть таблицы используется для представления символов псевдографики и букв национальных алфавитов. В качестве примера выше приведена русская альтернативная дополнительная таблица, (нумерация шестнадцатеричная).
Представление в коде ASCII текста на русском языке | ||||||
Система счисления | М | А | М | А | ||
8С | 8С | |||||