Сентябрь 19, 2013

Компьютерная сказка 3

двоичный калькулятор - Пап, а как компьютеры считают?

— Так же, как и калькуляторы.

— Ну пааап! РасскажЫЫЫ.

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

Люди используют десятичную систему счисления. Вот ты считаешь: один, два, три, четыре, пять, шесть, семь, восемь, девять… А дальше что? Правильно, десять. Но десять это уже не одна цифра, а две — один и ноль. Вот это количество цифр, используемых для отображения числа, называют разрядностью, а положение, занимаемое цифрой в числе, называют разрядом. Десять — это ноль в первом разряде и один во втором разряде. Понятно? Тогда продолжаем.

Одиннадцать это один в первом разряде и один во втором. Дальше двенадцать, тринадцать, четырнадцать, пятнадцать, шестнадцать, семнадцать, восемнадцать, девятнадцать и что дальше? Двадцать, т.е. двойка во втором разряде и ноль в первом. А если тройка во втором разряде и ноль в первом это что? Правильно тридцать, т.е. говоря по-другому — три десятка. Так? А теперь давай считать только десятками. Что дальше? Сорок, пятьдесят, шестьдесят, семьдесят, восемьдесят, девяносто и сто. А сто это уже три цифры — ноль в первом разряде, ноль во втором и единица в третьем.

Если все ноли и единица в четвертом разряде, то это тысяча. Если в пятом, то десять тысяч, если в шестом, то сто тысяч, если в седьмом, то миллион.

— Пап, а мы с тобой до миллиона еще не считали…

_ О! Я думаю это будет долго, поэтому сейчас слушай сказку, а считать до миллиона овечек будешь вечером. Так вот, получается что основой десятиричной системы счисления является число десять. А как ты думаешь, что будет, если в качестве основы взять другое число? Правильно, будет другая система счисления. И люди используют в своей деятельности не только десятичную систему. Зачем? Сейчас расскажу.

— "Ну, я пару покупаю.
Продаёшь ты?" – "Нет, меняю".
— "Что в промен берёшь добра?"
— "Два-пять шапок серебра"
— "То есть это будет десять".
Царь тотчас велел отвесить

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

Еще в России использовалась шестнадцатиричная система, в которой основой является число шестнадцать. Так мерой веса был пуд — шестнадцать килограмм. В Англии использовалась двенадцатиричная система, там считали дюжинами, т.е. основой было число двенадцать. Это и сейчас отражается в их мерах веса и объема.

А еще мы, даже не задумываясь над этим, каждый день используем одновременно и двенадцатиричную и пятиричную, а еще и системы счисления, где основой являются числа шестьдесят и двадцать четыре. И знаешь где? Посмотри на часы. Как мы считаем время? Два раза по 12 или 24 часа в сутках, 60 минут в часе или 12 раз по 5 минут. Именно так и разделен циферблат — на 12 секторов по 5 делений. Вообще вот такое использование нескольких систем счисления для одного предмета, а у нас предмет — время, называется смешанной системой счисления.

Кстати о шестьдесятиричной системе — в некоторых областях Украины еще несколько десятков лет назад продавали яблоки, яйца и многое другое на «копы» — кучи по 60 штук.

Но мы немного отвлеклись. Так вот, люди пытались научить компьютеры своей десятичной системе счисления, но это оказалось очень сложно. Зато оказалось очень просто научить их двоичной системе счисления. В ее основе всего два числа — ноль и один. Описал двоичную систему счисления один ученый всего несколько столетий назад. Он подсмотрел ее в культуре Китая. Но известно, что самыми первыми, кто пользовался этой системой были туземцы островов неподалеку от Австралии. Об их существовании стало известно более пятисот лет назад. Считали они так: Урапун (1); Окоза (2); Окоза-Урапун (3); Окоза-Окоза (4).

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

Поначалу кажется, что научить компьютер языку Окоза-Урапун не очень хорошая идея. Попробуй запомнить даже число 10, выраженное в этих «окозоурапунах», а еще и сложить его с другими десятью. В десятичной системе сделать это просто, а вот в двоичной нет. Но компьютер это ведь не человек. У него достаточно места для очень больших чисел. Все зависит от разрядности. Самые первые компьютеры были восьми разрядные и могли оперировать числами до 256. При этом в десятичной системе 8 разрядов это почти 11 миилионов. Зато современные шестидесятичетырех (64) разрядные компьютеры могут оперировать числами до 18.446.744.073.709.551.615 Это 18 квинтильонов 446 квадрильонов 744 триллиона 73 биллиона 709 миллионов… с хвостиком. И, хотя в десятичной системе это число занимает всего 20 разрядов, но компьютер может такие числа складывать намного быстрее людей.

Собственно поэтому люди и сделали компьютеры.