Навигация:   Главная  –  Статьи  –  Компьютерная арифметика




Компьютерная арифметика


Контекст: Б. В. Павлов "Трудись компьютер", Москва ВО АГРОПРОМИЗДАТ, 1991


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

В римской системе числа представляются комбинациями знаков: I, V, X, L и т.д. Скажем, число 4 записывается как IV, а число 6 - VI. В арабской системе используется десять знаков - от 0 до 9, но значение каждого числа определяется не только цифрами, а и местом (разрядом), которое они занимают при записи числа. Эта система называется десятичной потому, что сдвиг любой цифры на один разряд изменяет величнну числа в десять раз (например, 7; 70; 700 или 0.7: 0,07 и т.д.).

Однако основанием для представления чисел может служить не только десятка, а и любое другое число. Так, в двоичной системе счисления используются всего два знака: 1 и 0, причем сдвиг единицы на один разряд изменяет величину числа вдвое. Запись 1 и означает единицу, 10-это уже 2, запись 100-будет 4 и т.д.

Оказалось, что компьютеру наиболее удобно оперировать именно числами, зашифрованными по двоичному принципу. Ведь две цифры, которые используются в этой системе, легко представить электрическими импульсами: 1 - импульс есть, 0 - импульса нет.

Одну двоичную цифру называют бит. Впрочем, с ним мы уже познакомились, когда речь шла о количестве информации, содержащейся в сообщении. Поскольку бит - очень маленькая величина, при оценке вместимости запоминающих устройств ЭВМ в качестве соответствующих единиц измерения принимают байт, содержащий в себе 8 бит, и килобайт, равный 1024 бит. Правда, обычно байт имеет не 8, а 9 двоичных разрядов. Дополнительный разряд используется как контрольный.

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

0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 10

Для наглядности можно представить себе конторские счеты, только на прутках у них нанизано уже не по десять, а лишь по две костяшки. Скажем, операция 5 + 3 = 8 в двоичной системе будет: 0101 +0011 = 1000.

Очень проста в этой системе таблица умножения:

0 x 0 = 0
0 x 1 = 0
1 x 0 = 0
1 x 1 = 1

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

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

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

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

Правила логики очень похожи на правила арифметики. И действительно, английскому математику Джону Булю удалось разработать своеобразную алгебру, которую позднее стали называть математической логикой или исчислением высказываний. Здесь используется тот же язык формул, что издавна применяется и в математике, а логические действия почти ничем не отличаются от арифметических.

В математической логике оперируют с высказываниями, которые обычно обозначают буквами А, В, С и т.д. Например, для руководителя хозяйства таким высказыванием может быть телефонный звонок инженера: "Сегодня вышли из строя два трактора". Высказывания оценивают только по их истинности или ложности и в первом случае его припимают за единицу, а во втором-за нуль. Тогда, если сообщение о числе аварийных тракторов соответствует действительности, А = 1, если же вкрались ошибка и сведения ложны, то А = 0.

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

Логическое сложение (дизъюнкция, она же логическая функция "ИЛИ") двух высказываний обозначается так: A \/ В = С. Соответствующая таблица вычисления аналогична той, что приведена ранее для сложения двоичных чисел:

0 \/ 0 = 0
1 \/ 0 = 1
0 \/ 1 = 1
1 \/ 1 = 1

Значит, сложное высказывание, полученное путем логического сложения, ложно только в одном случае-когда ложны оба составляющих его высказывания, ну а истинно, если истинны оба или хотя бы одно из них. Обратимся к упрощенному примеру из близкой нам области и обозначим А высказывание: "Трактор имеет повышенный расход картерной смазки". В - "Выпускной дым его двигателя синего цвета". С - "Маслосъемные кольца двигателя изношены". Тогда формулу А \/ В = С можно прочитать так: "Если трактор имеет повышенный расход картерной смазки или выпускной дым его двигателя синего цвета, то маслосъемные кольца двигателя изношены".

Логическое умножение (коньюнкция, она же логическая функция "И") - это такое сложное высказывание, которое истинно голько в одном случае-когда истинны вес составляющие его высказывания. Логическое умножение записывается А /\ В = С и имеет следующую таблицу:

0 /\ 0 = 0
1 /\ 0 = 0
0 /\ 1 = 0
1 /\ 1 = 1

Если трактор представить как систему из трех основных блоков: двигателя, трансмиссии и ходовой части, и обозначить А высказывание: "Двигатель трактора исправен"; B - "Ero трансмиссия исправна"; С - "Его ходовая часть исправна"; Д - "Трактор исправен", то формулу А /\ В /\ С = Д можно прочитать так: "И двигатель, и трансмиссия, и ходовая часть трактора исправны, поэтому трактор исправен". Достаточно ложности хотя бы одного из составляющих этого утверждения, чтобы ложным оказалось и все заключение.

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