92
1 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ВОЛОГОДСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ А. В. Машкин ИНФОРМАТИКА Утверждено редакционно-издательским советом ВоГУ в качестве учебного пособия ВОЛОГДА 2016 Машкин, А. В. Информатика : учебное пособие Научная библиотека Вологодского государственного университета

2016 mashkin inform · 2017-03-06 · В. Машкин ИНФОРМАТИКА Утверждено редакционно-издательским советом ВоГУ в качестве

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

  • 1

    МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ВОЛОГОДСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

    А. В. Машкин

    ИНФОРМАТИКА

    Утверждено редакционно-издательским советом ВоГУ в качестве учебного пособия

    ВОЛОГДА 2016

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 2

    УДК 681.3.(075) ББК 32.973.233

    М38

    Рецензенты:

    О. А. Шахов, кандидат технических наук, начальник инженерно-экономического факультета

    Вологодского института права и экономики,

    В. Г. Родимов, директор ООО «Мультимедиум» Машкин А. В.

    М38 Информатика: учебное пособие / А. В. Машкин; М-во образ. и науки РФ, Вологод. гос ун-т. – Вологда: ВоГУ, 2016. – 92 с.

    ISBN 978-5-87851-683-9

    В учебном пособии рассматриваются начальные сведения из теоретической информатики (булева алгебра, системы счисления и т.д.), компьютерной инженерии и архитектуры (принципы построения вычислительных машин с архитектурой фон Неймана, реализация некоторых из цифровых микросхем на базе логических элемен-тов и т.д.). Также даются начальные сведения из инженерии программного обеспече-ния (парадигмы программирования, интегрированные среды разработки и т.д.). По-собие подготовлено на основе программы курса «Информатика» для студентов бака-лавриата направления 09.03.01 «Информатика и вычислительная техника».

    УДК 681.3.(075) ББК 32.973.233

    © ФГБОУ ВО «Вологодский

    государственный университет», 2016 ISBN 978-5-87851-683-9 © Машкин А. В., 2016

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 3

    СОДЕРЖАНИЕ

    ВВЕДЕНИЕ ............................................................................................................... 4

    1. ОСНОВЫ ТЕОРЕТИЧЕСКОЙ ИНФОРМАТИКИ ........................................... 6

    1.1. Основы булевой алгебры ............................................................................. 6 1.2. Системы счисления ...................................................................................... 8

    1.2.1. Двоичная система счисления ............................................................... 9

    1.2.2. Десятичная система счисления .......................................................... 11 1.2.3. Шестнадцатеричная система счисления ........................................... 11

    1.2.4. Перевод чисел из одной системы счисления в другую ................... 12

    1.2.5. Перевод в разные системы счисления вещественных чисел .......... 14

    1.3. Представление отрицательных чисел в дополнительном двоичном коде ................................................................................................................ 16

    1.4. Разрядная сетка для представления в памяти ЭВМ чисел в формате с фиксированной запятой ................................................................................... 18

    1.5. Представление чисел в форме с плавающей запятой ............................. 20 2. ОСНОВЫ КОМПЬЮТЕРНОЙ ИНЖЕНЕРИИ .............................................. 26

    2.1. Построение цифровых схем на базе логических элементов ................... 26

    2.2. Интегральные микросхемы. Микропроцессоры ...................................... 41

    2.3. Принципы построения ВМ с архитектурой фон Неймана ...................... 43

    3. ОСНОВЫ ПРОГРАММНОЙ ИНЖЕНЕРИИ .................................................. 49

    3.1 Парадигмы программирования ................................................................... 49

    3.1.1. Структурное программирование ....................................................... 54

    3.1.2. Функциональное программирование ................................................ 55

    3.1.3. Параллельное программирование ..................................................... 56

    3.1.4. Объектно-ориентированное программирование ............................. 57

    3.2. Интерпретаторы и компиляторы ............................................................... 59

    3.3 Формальное описание синтаксиса языков программирования ............... 62

    3.4. Интегрированные среды разработки ......................................................... 64

    ЗАКЛЮЧЕНИЕ ..................................................................................................... 88

    СПИСКОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ......................................... 90

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 4

    ВВЕДЕНИЕ Настоящее время характеризуется широким применением информацион-

    ных технологий во многих сферах человеческой деятельности. Существует достаточно много учебников и учебных пособий по информатике значитель-но отличающихся своим содержимым друг от друга. Это связано прежде все-го с тем, что в настоящее время еще не существует установившегося и обще-употребительного понятия термина «информатика». В свою очередь, это обу-словлено тем, что очень трудно дать какое-либо общее определения термина «информатика», точно так же, как например, затруднительно дать общее оп-ределение термина «математика». Тем не менее в [1] приводится следующее определение термина информатика:

    Информа́тика (от информация и автоматика) — наука о методах и про-цессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений. Она включает дисциплины, относя-щиеся к обработке информации в вычислительных машинах и вычислитель-ных сетях, как абстрактные, вроде анализа алгоритмов, так и конкретные, на-пример разработка языков программирования и протоколов передачи данных. Французский термин «informatique» введён в 1962 году Филиппом Дрейфу-сом путем слияния слов information и automatique для обозначения предмет-ной области, занимающейся автоматизированной обработкой информации.

    Область исследования информатики весьма обширна. Например, она включает в себя вопросы, связанные с теоретическим исследованием алго-ритмов. Примером другого круга задач, решаемых в рамках информатики, можно считать практическую реализацию вычислительных систем, включая их программную и аппаратную часть. Согласно [1] информатику можно под-разделить на следующие основные разделы: теоретическая, прикладная и ес-тественная. Теоретическая информатика занимается теориями формальных языков, автоматов, алгоритмов, вычислимости и вычислительной сложности, а также вычислительной теорией графов, криптологией, логикой (включая логику высказываний и логику предикатов), формальной семантикой и закла-дывает теоретические основы для разработки компиляторов языков програм-мирования [1].

    Прикладная информатика направлена на выявление определённых поня-тий в области информатики, которые могут быть использованы для решения стандартных задач, таких, как, например, хранение и управление информа-цией с помощью структур данных, разработка алгоритмов, создание моделей решения общих или сложных задач [1]. Примерами успешно решенных задач такого рода могут служить, например, алгоритмы сортировки или алгоритм быстрого преобразования Фурье.

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 5

    Одним из важнейших направлений, которое развивается в рамках при-кладной информатики, является инженерия программного обеспечения (Software Engineering). Под инженерией программного обеспечения (ПО) по-нимается организация систематического процесса разработки, начиная от этапа формулирования идеи и заканчивая этапом создания завершенного про-граммного продукта. В рамках прикладной информатики также осуществля-ется создание инструментальных средств, необходимых для разработки ПО, например, компиляторов языков высокого уровня. Также в рамках приклад-ной информатики рассматриваются вопросы архитектуры вычислительных систем и компьютерной инженерии. В рамках этого подраздела прикладной информатики решаются вопросы оптимизации работы аппаратных средств вычислительной техники, рациональное распределение функций между про-граммной и аппаратной частью системы. Еще одним важным направлением, исследуемым в рамках данного подраздела, является организация связи меж-ду вычислительными машинами. Эта связь позволяет осуществлять элек-тронный обмен различными данными между разными компьютерами и, сле-довательно, представляет из себя техническую основу для развертывания ло-кальных и глобальных вычислительных сетей, в том числе и сети Интернета. В рамках данного направления обеспечивается разработка различного сетево-го оборудования (маршрутизаторы, коммутаторы и т.д.). Помимо этого, также осуществляется разработка и стандартизация различных сетевых протоколов (TCP, HTTP и т.д.), обеспечивающих возможность обмена информацией ме-жду различными вычислительными машинами. Разумеется, в эти два раздела информатики входят гораздо большее число подразделов, чем было перечис-лено выше. С их названием и предметами их изучения можно ознакомится в [1]. В рамках данного учебного пособия даются начальные сведения из теоре-тической информатики (1 глава), архитектуры вычислительных систем (2 гла-ва) и инженерии программного обеспечения (3 глава). На взгляд автора. эти сведения помогут лучше понять особенности работы компьютера и облегчат процесс изучения какого-либо современного высокоуровневого языка про-граммирования, например C#.

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 6

    1. ОСНОВЫ ТЕОРЕТИЧЕСКОЙ ИНФОРМАТИКИ

    1.1. Основы булевой алгебры В устройствах обработки, записи, хранения и передачи цифровой ин-

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

    Теоретической основой построения цифровых систем обработки инфор-мации на базе логических элементов является разработанная в XIX веке Джо-ном Булем алгебра логики (булева алгебра). В алгебре логики переменная ве-личина Х может принимать всего два значения – 0 или 1 и определены три основные операции:

    1) инверсия или логическое отрицание; 2) конъюнкция или логическое умножение; 3) дизъюнкция или логическое сложение. Результат выполнения той или иной логической операции в алгебре ло-

    гики может быть представлен в виде таблицы истинности в строках которой записываются все возможные сочетания логических переменных и соответ-ствующее им значение логической функции. Инверсия называется также опе-рацией НЕ и записывается в алгебраической форме в виде Y=X или Y= X. Дизъюнкция (такое преобразование называется также операцией ИЛИ) для двух переменных записывается в виде Y=X1+X2, либо в виде Y=X1∨X2. Конъюнкция (такое преобразование называется также операцией И) для двух переменных записывается в виде Y=X1⋅X2, либо Y=X1∧X2. Условные обо-значения логических элементов, осуществляющих преобразования И, ИЛИ, НЕ приведены на рисунке 1.1.

    а) б) в)

    Рис. 1.1. Условные обозначения элементов И, ИЛИ, НЕ: а) условное обозначение элемента ИЛИ; б) условное обозначение элемента И;

    в) условное обозначение элемента НЕ Результат той или иной операции над одной или несколькими перемен-

    ными в алгебре логике может быть представлен в виде таблицы истинности. В ней отображаются все возможные сочетания (комбинации) двоичных пере-

    1 & 1

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 7

    менных и значения функции Y, получающиеся в результате логической опе-рации. Таблицы истинности логических элементов НЕ, И, ИЛИ приведены соответственно в таблицах 1.1, 1.2 и 1.3.

    Таблица 1.1 ТАБЛИЦА ИСТИННОСТИ ЭЛЕМЕНТА НЕ

    X Y 0 1 1 0

    Таблица 1.2

    ТАБЛИЦА ИСТИННОСТИ ЭЛЕМЕНТА И

    X2 X1 Y 0 0 0 0 1 0 1 0 0 1 1 1

    Таблица 1.3

    ТАБЛИЦА ИСТИННОСТИ ЭЛЕМЕНТА ИЛИ

    X2 X1 Y 0 0 0 0 1 1 1 0 1 1 1 1

    Имеется известная условность того, какому значению переменной вели-чины поставлен в соответствие уровень логического нуля, а какому – уровень логической единицы. Поэтому, с точки зрения выполнения логических опе-раций, существует две совершенно равнозначные (дуальные) системы, рабо-тающие либо в положительной, либо в отрицательной логике. В положитель-ной логике уровень «1» соответствует высокому значению сигнала (напри-мер, напряжению), а уровень «0» – низкому значению сигнала. В отрицательной логике – наоборот – уровни «1» и «0» соответствуют низко-му и высокому значению сигнала соотвественно.

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

    Основные аксиомы и законы алгебры логики приведены в таблице 1.4.

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 8

    Таблица 1.4 ОСНОВНЫЕ АКСИОМЫ И ЗАКОНЫ АЛГЕБРЫ ЛОГИКИ

    Аксиомы (тождества) X+0=X; X•0=0

    X+1=1; X•1=X X+X=X; X•X=X X+X=1; X•X=1

    X=X Закон коммутативности X1+X2=X2+X1; X1•X2= X2•X1 Закон ассоциативности X1+(X2+X3)=(X1+X2)+X3;

    X1•(X2•X3)=(X1•X2)•X3 Закон дистрибутивности X1+X2•X3=(X1+X2)•(X1+X3)

    X1•(X2+X3)=X1•X2+X1•X3 Закон поглощения X1+X1•X2=X1; X1•(X1+X2)=X1 Закон склеивания

    (X1+X2)•(X1+X2)=X1; X1•X2+X1•X2=X1 Закон дуальности (теорема де

    Моргана)

    X1+X2= X1•X2; X1•X2= X1+X2

    1.2. Системы счисления Правила записи чисел определяются системой счисления, под которой

    понимается некий набор правил, используемый для представления чисел. Системы счисления можно разделить на две большие группы: непозиционные и позиционные. И в тех и других системах, имеется определенный набор сим-волов, называемых цифрами. Каждому символу из этого набора (цифре) соот-ветствует определенный числовой эквивалент. Последовательное расположе-ние символов из этого набора, т.е. цифр, образует запись числа. Исторически первыми возникли непозиционные системы счисления. Их отличительной чертой является, то что, числовой эквивалент цифр не зависит от ее место-расположения в записи числа. Классическим представителем непозиционных систем счисления является римская. В ней в качестве набора символов, ис-пользуемых для представления чисел, применяются буквы латинского алфа-вита. Соответствие между римскими цифрами и их количественным эквива-лентом в десятичной системе счисления приведено в таблице 1.5.

    Таблица 1.5 КОЛИЧЕСТВЕННЫЕ ЭКВИВАЛЕНТЫ РИМСКИХ ЦИФР

    Римская цифра

    I V X L C D M

    Количественный эквивалент

    1 5 10 50 100 500 1000

    Достаточно выполнить сложение количественного эквивалента всех

    цифр, составляющих запись числа в римской системе счисления, чтобы полу-

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 9

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

    Например: MCXXVI=1000+100+10+10+5+1=1126.

    Другой пример: DMXIX=1000-500+10+10-1=519.

    Отличительным признаком позиционных систем счисления является то, что количественный эквивалент цифры будет зависеть от ее месторасположе-ния в записи числа. Под позицией понимается место расположения каждой цифры в записи числа, чем и обусловлено название данных систем счисления. Разрядом называется номер позиции цифры в записи числа за вычетом еди-ницы. При записи целых чисел нулевой разряд будет соответствовать самому младшему разряду числа. Каждой цифре в последовательной записи числа будет соответствовать определенный количественный эквивалент. Пусть, на-пример, у нас имеется целое положительное число A, записанное в некоторой позиционной системе счисления с основанием q и состоящее из n цифр ai (где i=0, 1, 2 … n-1). В этом случае числу A будет соответствовать следующая по-следовательная запись цифр:

    an-1an-2…a1a0 . При этом любая цифра в записи числа должна быть меньше основания

    системы счисления, т.е. должно выполняться неравенство ai

  • 10

    дующее выражение для определения количественного эквивалента целого положительного числа, записанного в двоичной системе счисления:

    A(2)=an-1·2n-1

    +an-2·2n-2+…+a1·2

    1+a0·20 .

    Например: 100 11012=1·2

    6+0·25+0·24+1·23+1·22+0·21+1·20=64+8+4+1=77. Использование данной системы счисления обусловлено тем, что совре-

    менные компьютеры в конечном итоге построены на схемах логических эле-ментов, обладающих всего двумя входными и выходными состояниями – включено и выключено (1 и 0).

    Сложение и вычитание двоичных чисел выполняется тем же самым спо-собом, что и в других позиционных системах счисления, например десятич-ной. Т.е. сложение двух одноразрядных двоичных чисел выполняется по сле-дующим правилам:

    0+0=0; 0+1=1; 1+0=1; 1+1=10.

    В последнем случае результат выполнения операции сложения не поме-щается в одном двоичном разряде и происходит его перенос в следующий старший разряд двоичного числа. Вычитание двух одноразрядных двоичных чисел выполняется по следующим правилам:

    0-0=0; 0-1=1 (должен происходить заем из старшего разряда);

    1-0=1; 1-1=0. Пример выполнения операции сложения восьмиразрядных двоичных чисел:

    1101 1011 +

    0011 0111 10001 0010 Как видно, результат выполнения операции сложения не поместился в

    восемь двоичных разрядов. Пример выполнения операции вычитания вось-миразрядных двоичных чисел:

    1100 0011 -

    0111 1010 0100 1001

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 11

    1.2.2. Десятичная система счисления Эта система счисления широко используется в повседневной жизни, и

    поэтому она очень хорошо известна. Как следует из ее названия, основание системы счисления в данном случае равно 10, и соответственно используется десять цифр для представления чисел {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. Подставляя в формулу (1.1) q=10, получаем следующее выражение для определения коли-чественного эквивалента целого положительного числа, записанного в деся-тичной системе счисления:

    A(10)=an-1·10

    n-1 +an-2·10

    n-2+…+a1·101+a0·10

    0. Например:

    435610=4·103+3·102+5·101+6·100.

    1.2.3. Шестнадцатеричная система счисления В данной системе счисления используется q=16 и соответственно ис-

    пользуется набор из 16 цифр {0.1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}, по-следовательная запись которых, точно так же как и в других позиционных системах счисления, будет образовывать некое число. Соответствие двоич-ных чисел и их десятичных и шестнадцатеричных эквивалентов приведено в таблице 1.6.

    Таблица 1.6

    СООТВЕТСТВИЕ МЕЖДУ ШЕСТНАДЦАТЕРИЧНЫМИ ЦИФРАМИ, ДВОИЧНЫМИ И ДЕСЯТИЧНЫМИ ЧИСЛАМИ

    Десятичное число Двоичное число Шестнадцатеричные цифры 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 12

    Подставляя в формулу (1.1) q=16, получаем следующее выражение для определения количественного эквивалента целого положительного числа, за-писанного в шестнадцатеричной системе счисления:

    A(16)=an-1·16n-1

    +an-2·16n-2+…+a1·16

    1+a0·160.

    Например: fe0716=15·16

    3+14·162+0·161+7·160=15·4096+14·256+0·16+7=68615. Сложение и вычитание шестнадцатеричных чисел можно выполнять так

    же, как и в других позиционных системах счисления, например десятичной. При выполнение этих операций следует помнить соотношения:

    116+F16=1016 ; 1016-116=F16 .

    1.2.4. Перевод чисел из одной системы счисления в другую Достаточно часто возникает необходимость выполнять перевод чисел из

    одной системы счисления в другую. Обычно для перевода чисел из других систем счисления в десятичную используют алгоритм замещения. Принцип его применения состоит в следующем: в десятичную систему счисления пе-реводят как исходные цифры числа, так и основание системы счисления q. Далее полученные значение подставляются в формулу (1.1). Вычисленное значение и будет являться результатом данного преобразования. Примером использования данного алгоритма может служить перевод чисел из двоичной и шестнадцатеричной систем счисления, осуществленный ранее.

    Алгоритм перевода чисел из десятичной системы счисления в двоичную заключается в следующем [2, 3]:

    1) Разделить исходное целое положительное число, представленное в десятичной системе счисления на 2, получив частное ch и остаток ost. 2) Если при выполнении первого пункта частное ch не оказалось равным 0, то следует принять его за новое делимое для очередного шага

    выполнения алгоритма и отметить остаток ost, который будет очередной зна-чащей цифрой числа, и вернуться к пункту 1.

    3) Если при выполнении первого пункта частное ch=0, то выполнение алгоритма завершается. Выписывая значения остатков ost, получаемых

    на каждом шаге исполнения алгоритма, определяем двоичное представление исходного десятичного числа.

    На рис. 1.2 изображено применение вышеизложенного алгоритма для перевода числа 115 в двоичную систему счисления. После выписывания ос-татков в обратном порядке получаем, что 11510=11100112.

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 13

    Рис. 1.2. Перевод в двоичную систему счисления из десятичной Общая идея алгоритма перевода из десятичной системы счисления в ше-

    стнадцатеричную аналогична идее, используемой в алгоритме перевода из де-сятичной системы счисления в двоичную. Алгоритм выглядит следующим образом [2]:

    1) Разделить исходное целое положительное число, представленное в де-сятичной системе счисления на 16, получив частное ch и остаток ost.

    2) Если при выполнении первого пункта частное ch не оказалось рав-ным 0, то следует принять его за новое делимое для очередного шага выпол-нения алгоритма и отметить остаток ost, который будет очередной значащей цифрой числа, и вернуться к пункту 1.

    3) Если при выполнении первого пункта частное ch=0, то выполнение ал-горитма завершается. Выписывая значения остатков ost (заменяя их шестна-дцатеричными цифрами), получаемых на каждом шаге исполнения алгорит-ма, определяем шестнадцатеричное представление исходного десятичного числа.

    Пример перевода в шестнадцатеричную систему счисления изображен на рисунке 1.3 (в шестнадцатеричную систему счисления из десятичной перево-дится число 27653). Порядок обхода остатков для получения результата (6C0516) показан стрелками.

    При переводе из шестнадцатеричной системы счисления в двоичную, каждая из шестнадцатеричных цифр заменяется соответствующей ей двоич-ной тетрадой (табл. 1.6). Тетрадой называется группа из четырех бит. Пример перевода числа из шестнадцатеричной системы счисления в двоичную:

    FE78A16=1111_1110_0111_1000_10102 .

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 14

    Рис. 1.3. Перевод в шестнадцатеричную систему счисления из десятичной Если требуется перевести число из двоичной системы счисления в шест-

    надцатеричную, то каждая двоичная тетрада заменяется соответствующей шестнадцатеричной цифрой, начиная с младших разрядов переводимого дво-ичного числа (табл. 1.6). Если в переводимом двоичном числе не хватает в старшей тетраде нескольких старших разрядов, то недостающие старшие раз-ряды заполняются нулями:

    Например: 10_0110_11112=0010_0110_11112=26F16 .

    1.2.5. Перевод в разные системы счисления вещественных чисел

    Все ранее рассмотренные алгоритмы обеспечивали преобразование из

    одной системы счисления в другую лишь положительных целых чисел. На практике возникает также необходимость переводить из одной системы счис-ления в другую не только целые, но и вещественные числа. Для перевода ве-щественных чисел из системы счисления с основанием q необходимо не-сколько модифицировать формулу (1.1):

    A(q)=an-1·q

    n-1 +an-2·q

    n-2+…+a1·q1+a0·q

    0+а-1·q-1+а-2·q

    -2+…+а-m·q-m (1.2)

    Согласно формуле (1.2), для представления целой части положительного

    двоичного числа отводится n разрядов, а его дробной части – m разрядов.

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 15

    Например, переведем число 1011,112 из двоичной системы счисления в десятичную:

    1011,112=1·23+0·22+1·21+1·20+1·2-1+1·2-2=8+2+1+0,5+0,25=11,75.

    Для перевода вещественного числа из десятичной системы счисления в систему счисления с основанием q можно воспользоваться следующим алго-ритмом:

    1) Разделить исходное вещественное число, представленное в десятич-ной системе счисления, на целую и дробную части. Полученную целую часть перевести в выбранную систему счисления, используя один из алгоритмов перевода целых чисел.

    2) Основание новой системы счисления (в которую осуществляется пе-ревод) следует умножить на значение дробной части.

    3) В полученном результате умножения следует выделить целую часть, приняв ее в качестве очередной цифры, стоящей после запятой (при первом умножении – первой, при втором – второй и т.д.).

    4) Выполнение алгоритма завершается, если дробная часть результата умножения получается нулевой либо если достигнута заданная точность пре-образования (например 5 знаков после двоичной запятой). В противном слу-чае следует перейти к выполнению пункта 2 (приняв в качестве одного из со-множителей значение дробной части полученного результата, вторым сомно-жителем по-прежнему будет являться основание системы счисления, в которую осуществляется перевод).

    Для иллюстрации работы рассмотренного алгоритма выполним преобра-зование числа 73,7342 в двоичную систему счисления с точностью до 5 зна-ков после двоичной запятой. Целой части числа 73 соответствует двоичная комбинация 10010012. Процесс перевода дробной части 0,7342 иллюстриру-ется при помощи таблицы 1.7.

    Таблица 1.7

    ПЕРЕВОД ДРОБНОЙ ЧАСТИ ВЕЩЕСТВЕННОГО ЧИСЛА В ДВОИЧНУЮ СИСТЕМУ СЧИСЛЕНИЯ

    Номер цифры после

    запятой 1 2 3 4 5

    Сомножители 0,7342*2 0,4684*2 0,9368*2 0,8736*2 0,7472*2 Результат умножения

    1,4684 0,9368 1,8736 1,7472 1,4944

    Значение цифры

    1 0 1 1 1

    Таким образом, получился следующий результат перевода:

    73,734210≈1001001,101112.

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 16

    1.3. Представление отрицательных чисел в дополнительном двоичном коде

    Помимо представления положительных чисел (о чем речь шла в преды-

    дущем разделе) в памяти компьютера, естественно, также необходимо пред-ставлять и отрицательные числа. При записи отрицательных чисел на бумаге перед их модулем просто ставится знак «-». Однако, ячейки памяти ЭВМ со-стоят из двоичных разрядов, в которых может содержатся значение либо «1», либо «0». Таким образом, знак «-» должен быть закодирован одной из этих двоичных цифр, причем еще потребуется отличать его от двоичных разрядов, в которых будут содержатся цифры самого числа. Для представления чисел со знаком в большинстве вычислительных машин используется дополнитель-ный двоичный код. В дополнительном двоичном коде старший бит отводится для представления знака числа, если он равен 0, то число считается не отри-цательным (положительным или нулем), если 1 – то отрицательным. Никаких физических отличий бита, используемого для представления знака числа, от других бит операнда, используемого для представления его модуля, естест-венно не наблюдается. Причем в большинстве машинных команд ЦП Intel x86 и x86-64 их алгоритмы не учитывают старший бит, как бит знака. ЦП просто при выполнении команды устанавливает флаги, т.е. признаки характеризую-щие результат выполнения операции. Поэтому при написании программы на языке низкого уровня (ассемблере) задача интерпретации старшего бита ре-зультата в большинстве случаев возлагается на программиста, который может ее решить, проанализировав флаги, установленные ЦП после выполнения опе-рации. Исключением из этого правила в ЦП Intel x86 и x86-64 являются две команды целочисленного умножения и деления со знаком imul и idiv, алгорит-мы работы которых действительно учитывают старший бит как бит знака.

    Согласно определению, для любого целого положительного числа име-ется противоположное ему отрицательное число, в сумме с которым получа-ется ноль.

    Пусть имеется четырехбитовый двоичный код. Тогда для реализации ра-венства 1+(-1)=0 в четырех двоичных разрядах к двоичной комбинации 00012 (+110) необходимо прибавить двоичную комбинацию 11112 (-110), для реали-зации равенства 2+(-2)=0 к двоичной комбинации 00102 (+210) следует приба-вить двоичную комбинацию 11102 (-210) и т.д. Название дополнительный дво-ичный код объясняется тем, что при сложении положительного и отрицатель-ного числа с одинаковым модулем, представленных таким образом, получается значение 2n, где n – разрядность кода (в рассматриваемом примере n=4). Таким образом, при использовании n-разрядной двоичной сетки некото-рое число X при суммировании со своим противоположным числом –X до-полняется до значения 2n. При этом в младших разрядах (от 0 до n-1) форми-руется значение 0. Можно сформулировать следующие правило получения

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 17

    представления числа в дополнительном двоичном коде из представления чис-ла в обычном двоичном коде:

    1) Производится инвертирование числа представленного в обычном дво-ичном коде.

    2) К результату выполнения операции инвертирования добавляется еди-ница.

    Например, требуется перевести в дополнительный двоичный код число -510. В начале в двоичную систему счисления переводится модуль числа (при использовании четырехразрядной двоичной сетки получается значение 01012). Далее производится инвертирование этого числа (10102) и прибавле-ние к нему 1 (10102+1=10112). Т.е. числу -510 в дополнительном двоичном ко-де будет соответствовать двоичная комбинация 10112.

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

    00002 - 01012 10112 В результате выполнения последней операции был произведен заем из

    старшего воображаемого бита разрядной сетки. При выполнении бы такой операции на ЭВМ ее процессор отреагировал на факт выхода результата за пределы используемой разрядной сетки установкой соответствующего флага.

    Для большей наглядности в образовании дополнительного двоичного кода удобно представить числовую прямую с целыми числами (рис. 1.4) в виде круга (рис. 1.5).

    Рис. 1.4. Числовая прямая Такое представление возможно, поскольку в памяти компьютера отво-

    дится лишь фиксированное число позиций под цифры числа. Двоичные зна-чения (вне круга) расположены в порядке возрастания по часовой стрелке. Прибавление 1 к максимальному значению (11112) в результате даст 0 (при четырехразрядной сетке). Внутри круга расположены эквиваленты десятич-ных чисел со знаком; беззнаковые десятичные числа расположены вне круга. Запись в дополнительном коде играет важную роль так как позволяет на ап-паратном уровне заменить операцию вычитания операцией сложения. Если будет производится вычитание из меньшего большего числа, например, 3-4, то вычитаемое переводится в дополнительный двоичный код (11002), что фактически соответствует изменению знака вычитаемого, а после произво-

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 18

    дится полученного числа в дополнительном двоичном коде с уменьшаемым (в нашем случае число 3). Результатом выполнения (11002+00112) будет яв-ляться число 11112, что соответствует -1 в дополнительном двоичном коде.

    Рис. 1.5. Представление целых чисел в виде круга

    1.4. Разрядная сетка для представления в памяти ЭВМ чисел в формате с фиксированной запятой (ФЗ)

    Для того, чтобы в памяти компьютера иметь возможность представить

    числа в форме с фиксированной запятой (другое ее название естественная форма представления), необходимо использовать разрядную сетку, изобра-женную на рис. 1.6. На рис. 15. для представления целой части числа отво-дится n разрядов, а для представления дробной части числа – m разрядов.

    Рис. 1.6. Формат представления чисел с фиксированной запятой Разряды, в которых располагаются цифры числа, используемые для за-

    дания значении его модуля, называются цифровыми разрядами кода. Знако-

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 19

    вым разрядом называется бит, предназначенный для хранения знака числа. Этот бит располагается левее старшего цифрового разряда кода. Положение запятой для всех чисел, представленных в естественной форме, фиксируется и при выполнении программ не меняется. Несмотря на то, что запятая фикси-руется, в разрядной сетке она только подразумевается и не выделяется ника-ким явным образом. При заданных значениях n и m диапазон изменения мо-дулей чисел, коды которых могут быть представлены в данной разрядной сетке лежит в пределах от q-m до qn-q-m. Для современных вычислительных машин характерно q=2.

    При обработке смешанных чисел (состоящих из целой и дробной части) они все равно будут рассматриваться как целые, хотя в действительности и не будут являться таковыми. Для обозначение данной ситуации используют оп-ределение масштабируемое целое. ЭВМ со смешанной арифметикой встре-чаются достаточно редко. Только правильные дроби могут быть представле-ны в случае фиксации запятой перед старшим цифровым разрядом кода. При использовании знакового представления старший бит будет отводится для размещения знака числа. В случае беззнакового представления все биты раз-рядной сетки будут использованы для задания модуля числа. Точно также как и ЭВМ со смешанной арифметикой, ЭВМ с дробной арифметикой встреча-ются весьма редко.

    Наиболее типичным случаем является фиксирование запятой правее млад-шего цифрового кодового разряда. При таком способе фиксации становится возможным представить лишь целые числа и точно также, как и в ЭВМ с дроб-ной арифметикой возможно два способа представления: знаковое и беззнаковое. Это наиболее типичный случай, поэтому обычно под форматом представления чисел с фиксированной запятой, понимается представление целых чисел. Соот-ветственно машинные команды, выполняемые над операндами, представленны-ми в таком формате, будут характеризоваться как целочисленные.

    Достоинством формата с ФЗ является то, что при его применении упро-щается реализация аппаратной части ЭВМ, а также увеличивается скорость выполнения машинных команд. Однако, при этом приходится следить, чтобы значения исходных операндов, а также окончательных и промежуточных ре-зультатов лежали в диапазоне границ заданных форматом. В противном слу-чае произойдет выход результата за пределы разрядной сетки, т.е. будет по-лучено некорректное значение.

    Микропроцессор сигнализирует о выходе результата вычисления за пре-делы разрядной сетки при помощи установки определенного флага (призна-ка), представляющего из себя двоичный разряд. Эти флаги объединяются в специальный регистр, называемый регистром флагом. В состав системы ко-манд микропроцессора всегда входят команды условной передачи управле-ния, позволяющей изменить естественный порядок выполнения команд про-граммы и передать управление на другую ветвь программы в зависимости от значения анализируемого ими флага.

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 20

    1.5. Представление чисел в форме с плавающей запятой В принципе для обработки вещественных чисел может использоваться и

    целочисленное арифметико-логическое устройство (АЛУ) центрального про-цессора. Однако, применительно к ВМ на базе процессоров Intel x86, более эффективно их обработка может быть осуществлена с помощью специально-го аппаратного устройства, называемого сопроцессором. Большинство дан-ных, обрабатываемых сопроцессором, записываются в форме с плавающей запятой (ПЗ), называемой также нормальной или полулогарифмической фор-мой представления. Вместо термина плавающая запятая может использовать-ся и термин плавающая точка (ПТ).

    При представлении числа в форме с ПЗ оно разбивается на две группы цифр, одна из которых называется мантиссой, а другая порядком. Некоторому вещественному числу А, представленному в форме с ПЗ будет соответство-вать запись вида: ±m·q±p, где m –мантисса, p – порядок, q – основание системы счисления. Для современных ВМ характерно q=2. Нормальная форма пред-ставления неоднозначна, поскольку взаимное изменение значений мантиссы и порядка будут приводить к перемещению запятой в мантиссе, т.е. к ее «пла-ванию», чем и объясняется название «плавающая запятая». Таким образом, чтобы записать число в форме с ПЗ необходимо задать знаки мантиссы и по-рядка, а также их модули, записанные в q-ной системе счисления. Разрядная сетка для представления вещественного числа в форме с ПЗ изображена на рис. 1.7.

    Рис. 1.7. Разрядная сетка для представления числа в форме с ПЗ с истинным значением порядка

    На рис. 1.6 r разрядов отводится для представления истинного значении

    порядка, а n разрядов для представления мантиссы. В большинстве ВМ, для упрощения обработки чисел, представленных в форме ПЗ истинное значение порядка, приводится к целому положительному числу. С этой целью к истин-ном значению порядка, прибавляют фиксированное положительное число, называемое смещением. Обычно величина смещения выбирается равной по-ловине диапазона представимых порядков. Смещенный порядок займет все разряды, которые ранее отводились под размещение истинного значения по-рядка, в том числе и тот, где ранее располагался его знак. И разрядная сетка для представления числа в форме с ПЗ в этом случае примет вид, изображен-ный на рис. 1.8.

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 21

    Рис. 1.8. Разрядная сетка для представления числа в форме с ПЗ со смещенным значением порядка

    В большинстве ВМ, для упрощения обработки чисел, представленных в форме с ПЗ, производится нормализация мантиссы. Нормализация мантиссы, означает, что ее первая цифра должна быть отлично от 0 и должна распола-гаться непосредственно либо слева, либо справа от двоичной запятой. Если первая значащая цифра мантиссы располагается непосредственно справа от двоичной запятой, в этом случае модули мантиссы будут удовлетворять сле-дующему неравенству: 0≤|m|

  • 22

    Если считать, что нормализация мантиссы выполняется таким образом, чтобы ее первая значащая цифра располагалась непосредственно слева от двоичной запятой и используется прием скрытой единицы (т.е. эффективная длина мантиссы будет равна 24 битам), то можно будет представить вещест-венные числа из диапазонов, изображенных на рис. 1.10.

    Рис. 1.10. Диапазон представления вещественных чисел Для множеств чисел, которых нельзя представить с помощью разрядной

    сетки, изображенной на рис. 1.9 существуют специальные названия: 1) Отрицательное переполнение – это отрицательные числа меньшие чем

    значение –(2-2-24)·2127. 2) Отрицательное антипереполнение (отрицательная потеря значимости)

    – это отрицательные числа большие чем значение -1·2-128. 3) Положительное антипереполнение (положительная потеря значимо-

    сти) – это положительные числа, меньшие чем значение +1·2-128. 4) Положительное переполнение – это положительные числа большие

    чем значение +(2-2-24)·2127. При ином распределении бит разрядной сетки допустимые границы

    представимых вещественных чисел будут другими. Числа, представленные в форме с ПЗ располагаются на числовой оси не-

    равномерно. По мере приближения к отрицательной и положительной потери значимости, они располагаются плотнее, а по мере удаления от них все реже и реже. Это означает, что в большинстве случае результат вычисления опера-ций, в которых операндами выступают числа, представленные в форме с ПЗ будет не точным, а округленным. Для формата представления чисел, изобра-женных на рис. 1.8 б) наблюдается противоречие между точностью представ-ления и диапазоном возможных значений. Если увеличить количество двоич-ных разрядов, отводимых для представления порядка числа, то расширятся границы диапазона представимых чисел, но произойдет уменьшение точно-сти их представления. Если, наоборот, увеличить количество бит, отводимых под мантиссу числа, то увеличится точность представления чисел, но сузится диапазон их представления. Одновременное увеличение и точности и расши-рения диапазона представимых чисел возможно лишь при одновременном увеличении двоичных разрядов, отводимых под поля мантиссы и порядка. Поэтому в большинстве ЭВМ применяется как минимум два формата пред-ставления вещественных чисел: 32-битный одинарный формат и 64-битный двойной формат.

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 23

    Представление чисел в форме с ПЗ регламентируется стандартом IEEE-754 (IEEE- Institute of Electrical and Electronics Engineers, институт инженеров по электротехнике и электронике). Стандарт IEEE-754 был создан для облег-чения портирования программ с одних типов ЭВМ на другие. Значительное количество семейств центральных процессоров (ЦП) и сопроцессоров под-держивают данный стандарт. IEEE-754 задает два основных формата пред-ставления вещественных чисел: 32-битный одинарный формат и 64-битный двойной. Дополнительно к ним вводится два расширенных формата, характе-ристики которых определяются фактически их реализацией в конкретной ЭВМ. Согласно этом стандарту мантисса нормализуется таким образом, чтобы ее первая значащая цифра располагалась непосредственно слева от двоичной запятой (т.е. 1≤|m|

  • 24

    IEEE-754 служат сочетания кодовых комбинаций когда все биты полей отво-димых под мантиссу и порядок заполняются одинаковыми двоичными циф-рами (табл. 1.9). Поскольку для представления специальных значений отво-дятся две из всех возможных двоичных комбинаций при заданной разрядной сетке, то и количество порядков обычных вещественных чисел, представи-мых с ее помощью также уменьшается на два (табл. 1.8).

    Таблица 1.9

    КОДОВЫЕ КОМБИНАЦИИ, ИСПОЛЬЗУЕМЫЕ ДЛЯ ПРЕДСТАВЛЕНИЯ СПЕЦИАЛЬНЫХ ЗНАЧЕНИЙ В СТАНДАРТЕ IEEE-754

    Поле порядка (p) Поле мантиссы (m) Специальные значения 000…000 000…000 0

    111…111 000…000

    Бесконечность положитель-ная или отрицательная в зависимости от знака

    мантиссы 000…000 ≠0 Денормализованное число

    111…111 ≠0 Не число (NaN – Not a

    Number).

    В денормализованном числе бит слева от двоичный точки равен 0 и фак-тический порядок равен -126 для одинарного формата или -1022 для двойно-го формата, т.е. невозможно будет выполнить операцию нормализации его мантиссы. Комбинация обозначающая «не число» (NaN) используется для сигнализации о возникновении различного рода исключительных ситуаций, возникающих в процессе выполнения программы (например, попытки извле-чения квадратного корня из отрицательного числа).

    Форматы вещественных чисел, поддерживаемые сопроцессорами Intel семейства х87 следующие:

    1) 32-битный одинарной точности (single precision); 2) 64-битный двойной точности (double precision); 3) 80-битный расширенной точности (extended precision); Нормализация мантиссы во всех этих форматах выполняется так, чтобы

    ее первая значащая цифра располагалась слева от двоичной запятой (1≤|m|

  • 25

    Рис. 1.11. Форматы вещественных чисел сопроцессора Intel семейства x87

    Таблица 1.10 КОДОВЫЕ КОМБИНАЦИИ, ИСПОЛЬЗУЕМЫЕ ДЛЯ ПРЕДСТАВЛЕНИЯ

    СПЕЦИАЛЬНЫХ ЗНАЧЕНИЙ В СОПРОЦЕССОРАХ INTEL СЕМЕЙСТВА Х87 Поле характеристики (q) Поле мантиссы (M) Специальные значения

    000…000 000…000 0

    111…111 100…000

    Бесконечность положитель-ная или отрицательная в зависимости от знака

    мантиссы 000…000 ≠0 Денормализованное число

    111…111

    10xxx… (хоть один из битов обозна-ченных х должен отличаться

    от нуля)

    Сигнальное не число SNAN (Signaling Non a Number)

    11xxx… Тихое (спокойное) не число QNAN (Quiet Non a Number)

    Появление сигнального «не числа» в регистре стека сопроцессора вызо-вет с его стороны генерацию исключительной ситуации «недействительная операция». Сигнальные «не числа» никогда не формируются сопроцессором самостоятельно. Программист может самым поместить такую комбинацию в регистр стека сопроцессора с тем, чтобы взывать генерацию данной исключи-тельной ситуации в нужный для него момент времени. По этой причине такие «не числа» и получили название сигнальных. Сопроцессором самостоятельно могут формироваться тихие «не числа», например, как ответ на генерацию определенных исключительных ситуаций. Если при выполнении какой-либо команды сопроцессора одним из операндов будет являться «не число», то и результат ее выполнения также будет «не числом». Специальные значения («не числа» и бесконечности) также используются и в современных языках высокого уровня, например, таких как Java или C#, наряду с обычными зна-чениями вещественных операндов. Более подробную информацию о пред-ставление арифметических данных на аппаратном уровне можно найти, на-пример, в источниках [4,5].

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 26

    2. ОСНОВЫ КОМПЬЮТЕРНОЙ ИНЖЕНЕРИИ

    2.1. Построение цифровых схем на базе логических элементов В общем случае для реализации цифрового устройства необходимо

    иметь набор логических элементов, осуществляющих операции И, ИЛИ, НЕ. Такой набор логических элементов называется функционально полным набо-ром с полным логическим базисом. Однако, в соответствии с принципами двойственности алгебры логики из этого набора можно исключить один из элементов выполняющий либо операцию ИЛИ, либо операцию И. В этом случае также получается функционально полный набор элементов с мини-мальным логическим базисом. При создании цифровых устройств обычно ис-пользуют универсальные логические элементы И-НЕ, либо ИЛИ-НЕ, услов-ные обозначения которых приведены на рисунке 2.1.

    а) б)

    Рис. 2.1. Условные обозначения элементов И-НЕ и ИЛИ-НЕ:

    а) условное обозначение элемента ИЛИ-НЕ; б) условное обозначение элемента И-НЕ

    Операция ИЛИ-НЕ (Y=X1+X2) также еще называется стрелкой Пирса

    может обозначается как Y=X1↓X2. Операция И-НЕ (Y=X1·X2) также еще на-зывается штрихом Шеффера может обозначается как Y=X1|X2.

    Реализация операций НЕ, ИЛИ, И с помощью универсальных логических элементов ИЛИ-НЕ показана на рис. 2.2, а с помощью универсальных логиче-ских элементов И-НЕ на рис. 2.3.

    а) б) в)

    Рис. 2.2. Выполнение операций НЕ, ИЛИ, И на элементах ИЛИ-НЕ: а) НЕ; б) ИЛИ; в) И

    Реализация логических элементов в большинстве случаев производится

    на транзисторах в виде интегральных микросхем (ИМС). Используется не-сколько основных вариантов реализации логических элементов, которые обычно называются транзисторными логиками.

    1 &

    1 1 1 1

    1

    1

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 27

    а) б) в)

    Рис. 2.3. Выполнение операций НЕ, ИЛИ, И на элементах И-НЕ: а) НЕ; б) И; в) ИЛИ

    На рисунке 2.4 приведена упрощенная внутренняя структура двухвходо-

    вого логического элемента И-НЕ, выполненного в ТТЛ (транзисторно-транзисторной логике).

    Рис.2.4. Упрощенная внутренняя структура базового элемента ТТЛ Основу логических элементов, реализованных в виде ИМС по техноло-

    гии ТТЛ, составляет многоэмиттерный транзистор (на рис. 2.4. обозначен как VT1). Главное отличие многоэмиттерного транзистора (МЭТ) от обычного заключается в том, что в МЭТ создается несколько эмиттеров, сконфигури-рованных таким образом, чтобы не допустить между ними непосредственного взаимодействия. Это позволяет рассматривать эмиттерные переходы МЭТ как параллельно включенные диоды. Функцию инвертора сигнала, т.е. вы-полнение операции НЕ реализует обычный биполярный транзистор (на рис. 2.4. обозначен как VT2).

    Если на любой из входов МЭТ подать потенциал логического нуля, то он окажется на базе транзистора VT2 и его базовый ток будет равен 0. Это озна-чает, что VT2 находится в режиме отсечки (аналог разомкнутого состояние механического ключа). Следовательно, ток через VT2 не протекает и напря-жение на его коллекторе (выходе схемы) будет равно напряжению источника питания E (при пренебрежении падением напряжения на резисторе R2), т.е.

    & & & &

    &

    &

    E=+5 В

    VT1

    R1

    Y=X1∧X2

    X1

    X2

    VT2

    Машкин, А. В. Информатика : учебное пособие

    Научная библиотека Вологодского государственного университета

  • 28

    соответствовать уровню логической единицы. При подаче на все эмиттеры МЭТ напряжения высокого уровня (соответствующего потенциалу логиче-ской единицы) транзистор VT2 открывается, поскольку на его базе оказыва-ется логическая «1». Следовательно, ток через VT2 начинает протекать и на-пряжение на его коллекторе (выходе схемы) будет равно потенциалу логиче-ского нуля (земли), при пренебрежении падением напряжении на VT2, работающим в режиме насыщения. Таким образом, при помощи логического элемента, изображенного на рис. 2.4, реализуется операция И-НЕ.

    На основании комбинаций логических элементов можно реализовывать различные устройства памяти, простейшими из которых являются триггеры. Триггер является элементом с двумя устойчивыми состояниями, предназна-ченным для хранения одного бита информации. Триггеры подразделяются на синхронные и асинхронные. В асинхронных триггерах изменение их внут-реннего состояния может произойти (в зависимости от конкретного режима конкретной разновидности триггера) сразу при смене логических уровней входных сигналов. Для того чтобы синхронн�