Добавить в корзинуПозвонить
Найти в Дзене
Объясню на пальцах

Как работает компьютер? (часть первая)

Нет, мы не будем здесь подробно и нудно перечислять, из чего состоит простейший компьютер и как работают вместе отдельные его компоненты. В сети очень много подобных статей. Мы же здесь попробуем ответить на самые простые вопросы. К примеру, откуда компьютер знает, сколько будет 2 + 2? Как он понимает команды, которые мы ему отдаем? Откуда появился язык программирования и как научили компьютер его понимать? Давайте попробуем разобраться вместе. Итак, начнем с языка самого компьютера. Все любят говорить, что машинный язык – это набор нулей и единиц, которыми можно зашифровать все, что угодно. Но причину выбора такого языка никто не объясняет. Все дело в его простоте и вы убедитесь в этом сами, когда мы создадим свой калькулятор, который умеет складывать числа. Но сначала о самом языке. Принцип записи чисел в двоичной системе следующий: представим себе восемь пустых стаканов. Каждый из них подписывается степенью двойки в порядке убывания: 256, 128, 64, 32, 16, 8, 4, 2, 1. Если стакан

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

Мы же здесь попробуем ответить на самые простые вопросы. К примеру, откуда компьютер знает, сколько будет 2 + 2? Как он понимает команды, которые мы ему отдаем? Откуда появился язык программирования и как научили компьютер его понимать? Давайте попробуем разобраться вместе.

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

Но сначала о самом языке.

Принцип записи чисел в двоичной системе следующий: представим себе восемь пустых стаканов. Каждый из них подписывается степенью двойки в порядке убывания: 256, 128, 64, 32, 16, 8, 4, 2, 1. Если стакан пуст, то это ноль, если его наполняют водой, то это единица. Чтобы написать число, надо заполнять только те стаканы, сумма которых и дает нужное число. Например, цифра 5: очевидно, что это первый и третий справа стаканы заполнят водой, остальные остаются пустыми. Записываем: 00000101. Цифра 10 будет как сумма двух и восьми, то есть второй и четвертый стаканы справа, остальные пустые: 00001010.

Наполнять стакан до краев необязательно, его наполненность  - всего лишь условность
Наполнять стакан до краев необязательно, его наполненность - всего лишь условность

Теперь соберем калькулятор. Чтобы не вгонять вас в долги, заставляя закупать лишние стаканы, ограничимся 12 стаканами (если нет возможности, часть из них можно заменить чашками). Итак, поставим четыре стакана в три ряда параллельно друг другу. Заполним первые два ряда так, чтобы они представляли две пятерки:

0101

0101

В нашем самодельном калькуляторе вода играет роль электрического тока, а стаканы – это транзисторы, через которые он протекает. Если два стакана пусты, то и третий под ними тоже пуст: тока-то нет. Если один полон, а второй пуст, то третий наполнится – ток прошел. Если полны оба, то нижний стакан останется пустым, но наполнится левый – ток «перескочил» на соседний транзистор. Начинаем переливать, исходя из этих правил:

0101

0101

1010

Итак, так просто мы сложили две пятерки и получили в сумме десять.

Усложним задачу: 2+2. Цифра «2» - наполнен только второй стакан справа: 0010, цифра «4», которая должна в итоге получиться – наполнен третий стакан справа: 0100. Складываем:

0010

0010

0100

Правила вычитания в двоичной системе:

0 - 0 = 0

1 - 0 = 1

0 - 1 = 1

1 - 1 = 0

Умножение:

0 * 0 = 0

1 * 0 = 0

0 * 1 = 0

1 * 1 = 1

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

Теперь вы понимаете, почему был выбран двоичный код в качестве языка машины: из-за своей простоты операции над числами максимально просты и не требуют каких-либо фантастических усилий, все арифметические действия сводятся к сложению. Задача инженеров была лишь в замене «стаканов» и «воды» на что-то более совершенное.

О том, для чего еще нужны транзисторы в компьютере и как он понимает язык программирования – в следующих статьях.