Вот уже которое столетие ученые ломают копья и головы над простым и мудрым вопросом: что было раньше? Дух или плоть, идея или материя? Курица или яйцо, наконец? В очередной раз склоняем голову перед престарелым мсье по имени Вечный Вопрос Философии – и тут, на страницах этой книги, без него не обошлось…
А собственно, к чему это лирическое отступление?
«Железо» – «плоть»компьютера. Программное обеспечение – его «дух», душа. То, без чего любая, даже самая «навороченная»персоналка превращается всего лишь в сочетание железа и пластика. Так кто же из них главнее? Кто – яйцо, а кто – курица?
Впрочем, применительно к компьютерам ответить на этот вопрос достаточно просто. Ибо сама идея программирования, то есть составления некоего алгоритма действий, которые следует выполнить для достижения некоего результата, родилась на свет задолго до того, как появились машины, способные эти самые программы выполнять. Чарльз Бэббидж, Ада Лавлейс, многочисленные философы-логисты – разве могли они мечтать о тех компьютерах, которые сегодня стоят у нас дома?
Именно программы сегодня буквально тащат за собой «железную» компьютерную индустрию. С каждым годом они становятся объемнее, требовательнее к аппаратной части компьютера. Сравните хотя бы текстовый редактор начала 80-х годов, умещающийся на одной дискете, с Microsoft Word.
И так без конца… Одно слово – прогресс! Хотя, с другой стороны, иначе как регрессом это и не назовешь. Ведь чем компактнее, проще программа – тем лучше. Но сегодняшние программисты не особо-то стараются оптимизировать собственные творения – мол, мощности современных компьютеров хватит, чтобы сгладить все их недостатки. Вот и вынуждены мы держать в компьютере программу для обработки текстов объемом в добрую сотню мегабайт, по скорости работы сравнимую с сонной черепахой…
Человек, как известно, может распознавать тысячи (если не миллионы) видов всевозможных сигналов. Когда мы читаем книгу, минимальным информационным элементом для нас становится буква, цифра или знак препинания. Итого – несколько десятков различных символов! При разговоре же мы должны распознавать уже сотни (если не тысячи) минимальных сигналов – звуки, элементы интонации, мимические и жестовые сигналы.
Нам, людям, это трудным не кажется. Но наш мозг учится искусству понимания этих сигналов долгие годы, методом проб и ошибок переводя внешние сигналы в понятные ему нервные импульсы, несущиеся по нейронным сетям. Эти импульсы и есть основной, изначальный язык мозга.
А как обстоит дело в компьютере? Точно так же – вся поступающая извне информация переводится на самый простой для компьютера язык, язык машинных кодов в двоичной системе.
Числа являются основой не только математики, но и информатики. Невозможно представить работу за компьютером без знания чисел. Кроме того, явно или неявно числа пронизывают всю цивилизацию.
Прежде чем приступать к рассказу о компьютерных числах, вспомним, чем отличается число от цифры. Часто по радио или телевизору можно услышать, что ведущая просит гостя программы – обычно ученого – назвать цифру. Или, наоборот, сам гость начинает приводить цифры. Все при этом понимают, что эта вольность русского языка, и требуется назвать не цифру от О до 9, а какое-то число.
При написании и чтении компьютерных книг до такой степени, конечно, расслабляться нельзя. Здесь всегда число – это измеритель некоторого количества, иногда – порядковый номер. А цифры – это всегда значки, которыми записываются числа или с помощью которых произносятся.
Десятичная система
Обычных «школьных» цифр всего десять: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. С их помощью можно записать любые числа (количества), но для этого нужно использовать определенные правила, которые всем известны со школы. Так вот, цифры вместе с правилами записи чисел и называются системой счисления.
Вспомним, как записываются эти числа. При записи числа каждая цифра, которая входит в его запись, означает определенное количество. Какое? Давайте посмотрим пример. Возьмем число 4891. Как оно получается из своих цифр? А вот как:
4891 = 4x1000 + 8x100 + 9x10 + 1x1.
Мы видим, что количество, которое несет в себе каждая цифра, зависит от положения, позиции цифры в записи числа. Если цифра стоит на первом месте справа, то ее следует домножить на 1, если на втором месте справа – то на 10, на третьем – на 100 и так далее, пока число не кончится. По этой причине такая система счисления называется позиционной. Вспоминая, что количество цифр «школьной» системы равно десяти, получаем ее полное название – позиционная десятичная система счисления.Количество цифр позиционной системы счисления называется ее основанием. То есть «школьная» система счисления имеет своим основанием десять.
Сделаем еще одно существенное замечание: наш русский язык представляет собой десятичный язык. Все числа, которые мы произносим, составлены по правилам десятичной системы счисления. (Поскольку все системы счисления, с которыми мы будем знакомиться, суть позиционные, слово «позиционная» будем опускать.) С одной стороны, это удобно и привычно, мы даже этого не замечаем. Но, с другой стороны, у нас будут возникать трудности при именовании чисел, записанных в других, недесятичных системах, – просто не будет слов.