Шрифт:
Интервал:
Закладка:
В этих схемах всплывает один вопрос, который для релейных схем был неактуален: с какого именно уровня напряжение считать логическим нулем, а с какого — единицей? В релейных схемах ноль — это полный разрыв цепи, а единица — полное ее замыкание. Здесь же не совсем так: на коллекторе открытого транзистора в левой схеме будет напряжение около 0,8–1 В, в то время как в правой — всего около 0,2–0,3 В. В то же время при закрытом транзисторе вроде бы напряжение логической единицы должно быть равно напряжению питания (токами утечки пренебрегаем). Однако оно тут же упадет, если мы нагрузим выход входом другой схемы типа «ИЛИ-НЕ», поскольку там требуется обеспечить определенный ток базы.
Поэтому для транзисторов и микросхем задают не точный порог изменения с нуля на единицу, который, как мы видим, непостоянен, а пределы: ниже определенного значения считают выход находящимся в состоянии нуля (для схем на рис. 14.4 подойдет значение 1,2–1,5 В), а выше другого определенного значения (например, при питании 5 В пусть это будет 3,5 В) — в состоянии логической единицы. В промежутке схему считают находящейся в нерабочем режиме (в зоне неопределенности). При этом приходится ограничивать число устройств, подключаемых одновременно к выходу (или потребляемый по выходу ток). Для того чтобы расширить возможности таких схем, в серию одинаковых по типу применяемой схемотехники микросхем вводят специальные чипы буферов — т. е. усилителей мощности сигнала, которые никакой логической функции не осуществляют, а просто усиливают сигнал по току. Иногда такие буферы совмещают с функцией инверсии. Но прежде чем мы перейдем к логическим микросхемам, необходимо немного углубиться в теорию и терминологию и понять, что такое двоичные коды и как двоичная арифметика соотносится с булевой алгеброй.
О двоичной и других системах счисленияО том, что мы считаем в десятичной системе потому, что у нас десять пальцев на двух руках, осведомлены, вероятно, все. У древних ацтеков и майя в ходу была двадцатеричная система (вероятно потому, что закрытая обувь в их климате была не в моде). Вместе с тем, история показывает, что привязка к анатомическим особенностям строения человеческого тела совершенно необязательна. Со времен древних вавилонян у нас в быту сохранились остатки двенадцатеричной и шестидесятеричной систем, что выражается в количестве часов в сутках и минут в часах или, скажем, в том, что столовые приборы традиционно считают дюжинами или полудюжинами (а не десятками и пятерками). Так что само по себе основание системы счисления не имеет значения — точнее, оно есть дело привычки и удобства.
Однако такое положение справедливо лишь для ручного счета — для компьютеров выбор системы счисления имеет большее значение. Попробуем ответить на вопрос — почему? Для этого нам придется сначала разобраться — как мы, собственно говоря, считаем, что при этом происходит, что такое вообще система счисления и ее основание.
Позиционные и непозиционные системы счисления.Десятичная система
Число — одна из самых удивительных абстрактных сущностей. Нет никаких сомнений, что число, количество предметов — есть вполне объективно существующая характеристика. В отличие, к примеру, от понятия цвета, она совершенно независима от самого факта наличия разума у считающего субъекта и даже от наличия самого субъекта. Тем не менее, материального воплощения числа не имеют — «количество», представленное в виде комбинации пальцев рук и ног, зарубок на палочке (вспомните, как Робинзон Крузо вел свой календарь), разложенных на земле веточек, костяшек на счетах или — что для нас самое главное! — черточек или значков на бумаге, есть всего лишь физическая модель некоего идеального абстрактного понятия «числа». Умение считать в уме, которое отличает цивилизованного человека от дикаря, и состоит в том, что мы можем оторваться от такой материальной модели и оперировать непосредственно с абстракцией.
Из понятия числа, как объективно существующей абстракции, вытекает, что его материальное представление может быть произвольным, лишь бы оно подчинялось тем же правилам, что и сами числа (совершенно аналогично булевым переменным). Проще всего считать палочками (и в детском саду нас учат именно такому счету) — в качестве которых могут выступать и пластмассовые стерженьки, и пальцы, и черточки на бумаге. Один — одна палочка, два — две палочки, десять — десять палочек. А сто палочек? Уже посчитать затруднительно, потому придумали сокращение записи: доходим до пяти палочек, ставим галочку, доходим до десяти — ставим крестик:
Узнаете? Конечно, это всем знакомая римская система, сохранившаяся до настоящих времен на циферблатах часов или в нумерации столетий. Она представляет собой пример непозиционной системы счисления — потому что значение определенного символа, обозначающего то или иное число, в ней не зависит от позиции относительно других символов — все значения в записи просто суммируются. То есть записи «XVIII» и «IIIXV» в принципе должны означать одно и то же. На самом деле это не совсем так — в современной традиции принято в целях сокращения записи использовать и позицию: скажем, в записи «IV» факт, что палочка стоит перед галочкой, а не после нее, означает придание ей отрицательного значения, т. е. в данном случае единица не прибавляется, а вычитается из пяти (то же самое относится и к записи девятки «IX»). Если вы человек наблюдательный, то могли заметить, что на часах четверку часто обозначают как «ИИ», а не как «IV» (см. рис. 14.5), что, несомненно, более отвечает духу непозиционной системы. Однако при всех возможных отклонениях главным здесь остается факт, что в основе системы лежит операция суммирования.
Рис. 14.5. Циферблат часов с римскими числами
Большие числа в римской системе записывать трудно, а еще сложнее осуществлять с ними арифметические действия. Поэтому еще в древнем Вавилоне придумали позиционную систему. Позднее в Европе позиционную систему переоткрыл (видимо) Архимед, затем от греков она была воспринята индусами и арабами, а на рубеже I и II тысячелетий опять попала в Европу[19] — с тех пор мы называем цифры арабскими, хотя по справедливости их следовало бы назвать индийскими. Это была уже современная десятичная система в том виде, в котором мы ее используем по сей день, у арабов отличается только написание цифр. С тем фактом, что заимствована она именно у арабов, связано не всеми осознаваемое несоответствие порядка записи цифр в числе с привычным для нас порядком следования текста: арабы, как известно, пишут справа налево. Поэтому значение цифры в зависимости от позиции ее в записи числа возрастает именно справа налево.
* * *
Заметки на полях
Еще один нюанс, дошедший до нас от древнегреческих времен, связан с тем, что греки и римляне не знали нуля. Именно поэтому первым годом нового тысячелетия считается 2001, а не 2000 год — год с двумя нулями относится к предыдущему столетию или тысячелетию. Это происходит потому, что после последнего года до нашей эры («минус первого») идет сразу первый год нашей эры, а не нулевой. На самом деле древние греки были совсем не такими дураками и ноль игнорировали не по скудоумию. Дело в том, что в последовательности объектов, нумерованных от нуля до, например, девяти, содержится не девять предметов, а десять! Чтобы избежать этой путаницы, в быту обычно нумерацию производят, начиная с 1, тогда последний номер будет одновременно означать и количество. В электронике же и в программировании обычно принято нумеровать объекты, начиная с 0, и всегда следует помнить, что номер и количество различаются на единицу (так, байт, о котором далее, может содержать 256 возможных значений, но номер последнего значения равен 255). На всякий случай всегда следует уточнять, откуда ведется нумерация, иначе можно попасть в неприятную ситуацию (скажем, элементы строки в языке Pascal нумеруются с единицы, а в языке С — с нуля).
* * *
Позиционные системы, в отличие от непозиционных, основаны не на простом сложении входящих в них цифр, а на сложении их с учетом присвоенного им «веса» в зависимости от положения цифр в записи. Так, запись «3» и в римской системе, и в арабской означает одно и то же, а вот запись «33» в римской системе означала бы шесть, а в арабской — совсем другое число, тридцать три.
Для строгого определения позиционной системы сначала выбирается некоторое число р, которое носит название основания системы счисления. Тогда любое число в такой системе может быть представлено следующим образом:
- Электроника в вопросах и ответах - И. Хабловски - Радиотехника
- Путеводитель в мир электроники. Книга 2 - Борис Семенов - Радиотехника
- Радиоэлектроника-с компьютером и паяльником - Генрих Кардашев - Радиотехника
- Зворыкин - Василий Борисов - Радиотехника