перенос 1 в старший разряд.
Например:
01010
+01011
10101
Утверждение двоичной системы в вычислительной технике было обусловлено существованием простых технических аналогов двоичной цифры — электрических реле, которые могли находиться в одном из двух устойчивых состояний, первое из которых ставили в соответствие с 0, другое — с 1. Передача двоичного числа электрическими импульсами из одного машинного устройства в другое тоже очень удобна. Для этого достаточно всего двух различных по форме импульсов (или даже одного, если отсутствие сигнала считать за нуль).
Следует отметить, что релейные машины, созданные на заре истории ЭВМ, недолго использовались в вычислительной технике, поскольку были сравнительно медленнодействующими. Так же как в механической машине скорость вычислений определялась скоростью поворота цифровых колес, время работы схемы, составленной из реле, равнялось времени срабатывания и отпускания реле. Между тем даже самые быстрые реле не могли делать больше 50 срабатываний в секунду. Например, в «Марк-2» операции сложения и вычитания занимали в среднем 0, 125 секунды, а умножение требовало 0, 25 секунды. Гораздо большим быстродействием обладали электронные аналоги электромеханических реле — вакуумные лампы- триггеры. Они и стали базовыми элементами в ЭВМ первого поколения.
Триггер был изобретен еще в 1919 году русским инженером Бонч-Бруевичем и независимо от него американцами Икклзом и Джорданом. Этот электронный элемент содержал две лампы, и в каждый момент мог находиться в одном из двух устойчивых состояний. Он представлял собой электронное реле, то есть при наличии сигнала управляющего импульса включал нужную линию или цепь электрического тока. Подобно электромеханическому реле он мог использоваться для обозначения одной двоичной цифры.
Рассмотрим принцип работы электронного реле, состоящего из двух электронных ламп-триодов Л1 и Л2, которые могут находиться в одном баллоне. Напряжение с анода Л1 через сопротивление R1 подается на сетку Л2, а напряжение с анода Л2 подается на сетку Л1 через сопротивление R2. В зависимости от положения, в котором находится триггер, он дает низкий или высокий уровень напряжения на выходе. Допустим вначале, что лампа Л1 открыта, а Л2 — закрыта. Тогда напряжение на аноде открытой лампы мало по сравнению с напряжением на аноде закрытой лампы. Действительно, так как открытая лампа Л1 проводит ток, то большая часть анодного напряжения падает (по закону Ома u=i•R) на высоком анодном сопротивлении Ra, а на самой лампе (включенной с ним последовательно) падает лишь незначительная часть напряжения. Наоборот, в закрытой лампе анодный ток равен нулю, и все напряжение источника анодного напряжения падает на лампе. Поэтому с анода открытой лампы Л1 на сетку закрытой лампы падает значительно меньшее напряжение, чем с анода закрытой лампы Л2 на сетку Л1. Отрицательное напряжение Ec, поданное на сетки обеих ламп, выбирается таким, чтобы вначале лампа Л2 была закрыта, несмотря на наличие небольшого положительного напряжения, поданного с анода открытой лампы Л1 на сетку Л2. Лампа же Л1 вначале открыта, так как положительное напряжение, поданное на сетку с анода Л2, значительно больше, чем Ec. Таким образом, благодаря связи между лампами через сопротивления R1 и R2 начальное состояние является устойчивым и будет сохраняться сколько угодно долго.
Рассмотрим теперь, что произойдет в схеме, если на сетку открытой лампы Л1 подать извне отрицательное напряжение в виде короткого импульса тока такой величины, чтобы закрыть ее. При уменьшении анодного тока i1 напряжение на аноде лампы Л1 резко увеличится и, следовательно, увеличится положительное напряжение на сетке Л2. Это вызовет появление анодного тока i2 через лампу Л2, благодаря чему уменьшится анодное напряжение на лампе Л2. Понижение положительного напряжения на сетке Л1 приведет к еще большему уменьшению тока в Л1 и т.д. В результате такого лавинообразного нарастающего процесса уменьшения тока в Л1 и увеличения тока в Л2 лампа Л1 закроется, а лампа Л2 будет открыта. Таким образом, схема перейдет в новое устойчивое положение равновесия, которое будет сохраняться сколько угодно долго: «запоминается» поданный на вход 1 импульс. Возвращение электронного реле обратно в исходное состояние можно осуществить подачей импульса отрицательного напряжения на вход. Триггер имеет, следовательно, два устойчивых положения равновесия: начальное, при котором Л1 открыта, а Л2 закрыта, и так называемое «возбужденное» состояние, при котором Л1 закрыта, а Л2 открыта. Время переброса триггера из одного состояния в другое очень мало. Конденсаторы C1 и C2 служат для убыстрения срабатывания лампы.
Идея вычислительной машины, в которой в качестве запоминающего устройства использовались бы электронные лампы, принадлежит американскому ученому Джону Моучли. Еще в 30-е годы он сделал несколько несложных вычислительных устройств на триггерах. Однако впервые электронные лампы при создании вычислительной машины применил другой американский математик Джон Атанасов. Его машина была уже практически завершена в 1942 году. Но из-за войны финансирование работы было прекращено. В следующем 1943 году, работая в Муровской электротехнической школе Пенсильванского университета, Моучли вместе с Преспером Эккертом разработал свой проект электронной вычислительной машины. Артиллерийское управление США заинтересовалось этой работой и заказало Пенсильванскому университету постройку машины. Руководителем работ был назначен Моучли. В помощь ему было дано еще 11 инженеров (включая Эккерта), 200 техников и большое число рабочих. В течение двух с половиной лет, до 1946 года, этот коллектив трудился над созданием «электронно-цифрового интегратора и вычислителя» — ЭНИАК. Это было огромное сооружение, занимавшее площадь 135 квадратных метров, имевшее массу 30 тонн и энергопотребление 150 киловатт. Машина состояла из сорока панелей, содержащих 18000 электронных ламп и 1500 реле. Однако использование электронных ламп вместо механических и электромеханических элементов позволило резко увеличить скорость. На умножение ЭНИАК тратил всего 0, 0028 секунды, а на сложение — 0, 0002 секунды, то есть работал в тысячу раз быстрее самых совершенных релейных машин.
Устройство ЭНИАК в общих чертах было следующим. Каждые десять триггеров соединялись в нем в кольцо, образуя десятичный счетчик, который выполнял роль счетного колеса механической машины. Десять таких колец плюс два триггера для представления знака числа образовывали запоминающий регистр. Всего в ЭНИАК было двадцать таких регистров. Каждый регистр был снабжен схемой для передачи десятков и мог использоваться для выполнения операции суммирования и вычитания. Другие арифметические операции выполнялись в специальных блоках. Числа передавались из одной части машины в другую посредством групп из 11 проводников — по одному для каждого десятичного разряда и знака числа. Значение передаваемой цифры равнялось числу импульсов, протекавших по данному проводнику. Работой отдельных блоков машины управлял задающий генератор, вырабатывавший последовательность определенных сигналов, которые «открывали» и «закрывали» соответствующие блоки электронной машины.
Ввод чисел в машину производился при помощи перфокарт. Программное же управление осуществлялось посредством штекеров и наборных полей (коммутационной доски) — таким образом отдельные блоки машины соединялись между собой. Это было одним из существенных недостатков описываемой конструкции. На подготовку машины к работе — соединение блоков на коммутационной доске — уходило до нескольких дней, тогда как задача порой решалась всего за несколько минут. В целом ЭНИАК была еще достаточно ненадежной и несовершенной вычислительной машиной. Она часто выходила из строя, причем поиск неисправности затягивался порой на несколько суток. Кроме того, эта машина не могла хранить информацию.
Для устранения последнего недостатка Эккерт в 1944 году выдвинул идею хранимой в памяти программы. Это была одна из важнейших технических находок в истории вычислительной техники. Суть ее заключалась в том, что команды программы должны были представляться в виде числового кода, то есть кодироваться в двоичной системе (как и числа) и вводиться в машину, где бы они хранились вместе с исходными числами. Для запоминания этих команд и операций с ними предполагалось использовать те же устройства — триггеры, что и для действия с числами. Из памяти отдельные команды должны были извлекаться в устройство управления, где их содержание расшифровывалось и использовалось для передачи чисел из памяти в арифметическое устройство для выполнения операций над ними и отсылки результатов обратно в память.