Книга Код. Тайный язык информатики, страница 45. Автор книги Чарльз Петцольд

Разделитель для чтения книг в онлайн библиотеке

Онлайн книга «Код. Тайный язык информатики»

Cтраница 45

Ранее в этой главе я говорил, что мы найдем способ определения частоты осциллятора. Итак, если вы подключите осциллятор к входу Clk 8-битного счетчика, последний покажет, сколько колебаний совершил осциллятор. Когда общее число достигнет 11111111 (255 в десятичной системе счисления), счетчик вернется к 00000000. Вероятно, самый простой способ определения частоты осциллятора заключается в том, чтобы подключить восемь лампочек к выходам 8-битного счетчика. Теперь подождите, пока значения всех выходов не станут равны 0, то есть пока не погаснут все лампочки, и запустите секундомер. Остановите секундомер, когда все лампочки погаснут снова. Это время, необходимое для 256 колебаний. Скажем, для этого требуется десять секунд. Таким образом, частота осциллятора составляет 256 / 10 = 25,6 герца.

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

Код. Тайный язык информатики

Входы Pre (от «рreset» — «предустановка») и Clr обладают более высоким приоритетом, чем входы Clk и «Данные». Обычно эти два входа равны 0. Когда вход Pre равен 1, выход Q становится равным 1, а выход — 0. Когда вход Clr равен 1, выход Q — 0, а выход — 1. Как и в случае со входами S и R RS-триггера, входы Pre и Clr не должны одновременно быть равными 1. В остальном этот триггер ведет себя как обычный D-триггер со срабатыванием по фронту.

Код. Тайный язык информатики

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

Код. Тайный язык информатики

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

Помимо упомянутых RS- и D-триггеров, существуют еще два основных вида: JK-триггеры (Jerk/Kill, внезапное включение / внезапное отключение) и Т-триггеры (Toggle, переключатель; он же счетный триггер). Таблица истинности JK-триггера отличается от таковой для RS-триггера наличием перехода при J = K = 1, где ввод J аналогичен вводу S, а ввод K — вводу R. Таким образом, это отличие можно записать следующим образом.

Код. Тайный язык информатики

Получается, J = K = 1 инвертирует предыдущее состояние триггера. Во всем остальном принцип работы аналогичен RS-триггеру.

Принцип действия Т-триггера заключается в том, что он инвертирует входной сигнал.

Код. Тайный язык информатики
Глава 15
Байты и шестнадцатеричные числа

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

Можно было бы ответить, что основой наших усовершенствованных счетных машин является исходный сумматор из главы 12, работающий с 8-битными значениями. Однако нет никаких особых причин конструировать эту машину именно так. Просто при ее создании мы сочли эту величину удобной. Как бы то ни было, признаю, что схитрил, поскольку с самого начала знал (возможно, и вы тоже), что восемь бит данных соответствуют одному байту.

Слово «байт» (byte) возникло в компании IBM примерно в 1956 году. Оно произошло от слова bite («кусок»), но его было решено писать через букву y, чтобы не путать со словом bit («бит»). В течение некоторого времени слово «байт» обозначало просто число битов в конкретном потоке данных. Однако в середине 1960-х, в связи с разработкой семейства компьютеров System/360 в компании IBM, это слово стало обозначать группу из восьми бит.

Как 8-разрядное число, байт может принимать значения в диапазоне от 00000000 до 11111111. Эти значения могут описывать положительные целые числа от 0 до 255, а при использовании дополнения до двойки для представления отрицательных чисел они могут отображать как положительные, так и отрицательные целые числа в диапазоне от −128 до 127. Кроме того, конкретный байт может просто представлять одну из 28, или 256, разных вещей.

Число 8 оказалось весьма удобной величиной. Компания IBM отдала предпочтение 8-битным байтам в связи с простотой хранения чисел в формате BCD (о котором я расскажу в главе 23). Однако, как мы увидим далее, байт идеально подходит для хранения текста, поскольку большую часть языков мира (за исключением идеограмм, использующихся в китайском, японском и корейском) можно представить менее чем 256 символами. Кроме того, байт идеально подходит для представления оттенков серого на черно-белых фотографиях, поскольку человеческий глаз различает примерно 256 оттенков этого цвета. А там, где не хватает одного байта (например, для представления вышеупомянутых идеограмм китайского, японского и корейского языков), как правило, можно использовать два байта, которые позволяют выразить 216, или 65 536, различных элементов.

Половина байта, то есть четыре бита, иногда называется тетрадой, однако это слово употребляется гораздо реже, чем «байт».

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

Разумеется, мы всегда можем обращаться к байтам, используя их десятичные эквиваленты, но это потребует преобразования двоичного числа в десятичное, что хоть и несложно, но весьма обременительно. В главе 8 я продемонстрировал один довольно простой подход. Поскольку каждая двоичная цифра соответствует степени 2, мы можем просто записать цифры двоичного числа, а под ними — степени 2, после чего перемножить числа в каждом столбце и сложить результаты. Далее представлен процесс преобразования числа 10110110.

Код. Тайный язык информатики

Процесс преобразования десятичного числа в двоичное менее удобен и предполагает деление десятичного числа на убывающие степени двойки. Частное от каждого деления — двоичная цифра, а остаток делится на следующую в порядке убывания степень двойки. Вот как десятичное число 182 преобразуется в двоичное.

Вход
Поиск по сайту
Ищем:
Календарь
Навигация