KnigaRead.com/

Юрий Ревич - Занимательная электроника

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Юрий Ревич, "Занимательная электроника" бесплатно, без регистрации.
Перейти на страницу:

аn·рn + an-1·pn-1 +… + a1·p1 + a0·p0. (4)

В самой записи числа степени основания подразумеваются, а не пишутся (и для записи основания даже нет специального значка), поэтому запись будет представлять собой просто последовательность аnа0 (еще раз обратим внимание на то, что запись производится справа налево по старшинству, — обычная математическая запись выглядела бы наоборот). Отдельные позиции в записи числа называются разрядами. Например, в десятичной системе (т. е. в системе с основанием 10) полное представление четырехразрядного числа 1024 таково:

1·103 + 0·102 + 2·101 + 4·100

Ну а как можно представить число в системе счисления с другим основанием? Для любой системы с основанием р нужно ровно р различных цифр — т. е. значков для изображения чисел. Для десятичной системы их десять — это и есть известные всем символы от 0 до 9. Заметим, что выбор начертания этих значков совершенно произволен — так, у арабов и по сей день 1 обозначается, как и у нас, вертикальной палочкой, а вот цифра 2 — знаком , похожим на латинскую строчную «r».

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


Двоичная и шестнадцатеричная системы

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

Еще важнее, что двоичная система прекрасно согласуется как с представленными ранее логическими переменными, так и с тем фактом, что величина, могущая принимать два и только два состояния и получившая названия бит, есть естественная единица количества информации. Это было установлено в 1948 году одновременно Клодом Шенноном и Норбертом Винером, отцом кибернетики, — меньше, чем один бит, информации не бывает. Разряды двоичных чисел (т. е. чисел, представленных в двоичной системе) также стали называть битами. Слово bit — по-английски означает «кусочек, частица чего-либо». Как термин для обозначения количества информации, слово «бит», говорят, возникло от сокращения Binary digiT — «двоичная цифра».

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

Итак, запись числа в двоичной системе требует всего двух цифр, начертание которых заимствовано из десятичной системы и выглядит, как 0 и 1. Число, например, 1101 тогда будет выглядеть так:

1·23 + 1·22 + 0·21 + 1·20 = 13

Чтобы отличить запись числа в различных системах, часто внизу пишут основание системы:

11012 = 1310.

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

Шестнадцатеричная система имеет, как ясно из ее названия, основание шестнадцать. Для того чтобы получить шестнадцать различных знаков, изобретать ничего нового не стали, а просто использовали те же цифры от 0 до 9 для первых десяти и заглавные латинские буквы от А до F для одиннадцатого-шестнадцатого знаков (часто вместо заглавных букв употребляют и строчные, с теми же значениями). Таким образом, известное нам число 1310 выразится в шестнадцатеричной системе, как просто D16. Соответствие шестнадцатеричных знаков десятичным числам следует выучить наизусть: А — 10, В — 11, С — 12, D — 13, Е — 14, F — 15. Значения больших чисел вычисляются по обычной формуле, например:

A2FC16 = 10·163 + 2·162 + 15·161 + 12·160 = 40960 + 512 + 240 + 12 = 4172410.


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

Как следует из изложенного, перевод в десятичную систему любых форматов не представляет сложности и при надлежащей тренировке может осуществляться даже в уме. Для того чтобы быстро переводить в десятичную систему двоичные и шестнадцатеричные числа, следует выучить наизусть таблицу степеней двойки до 16 (табл. 14.3) и представления некоторых чисел в двоичной и шестнадцатеричной формах (табл. 14.4).





Буква h добавляется к шестнадцатеричному представлению числа, чтобы отличить его от десятичного, не используя индекса 16 (в разных языках программирования есть и другие способы, см. далее). На первое время достаточно запомнить только маленькие числа, а для образования двоичных и шестнадцатеричных чисел понять принцип, остальное выучится позже само.

Из табл. 14.4 видно, что из двоичной в шестнадцатеричную системы и обратно переводить совсем просто. Двоичное число достаточно разбить на тетрады (т. е. группы из 4-х цифр) и перевести каждую в отдельности. Например, число 5910, т. е. 0011 10112, будет равно 3Bh. Еще проще обратный перевод — каждое шестнадцатеричное число заменяется группой из 4-х двоичных цифр. Соответственно, число A2FC16 выразится так: 1010 0010 1111 11002. Заметьте, что пробелы между тетрадами в двоичных числах введены просто для удобства восприятия, подобно пробелам между тройками разрядов (классами) в записи больших десятичных чисел, и никакой иной нагрузки не несут. При записи двоичных чисел в тексте программ, как ассемблерных, так и программ на языках высокого уровня, естественно, эти пробелы ставить запрещается. Обычно при этом для удобства ведущие нули нередко не опускаются (хотя в табл. 14.4 они и опущены) — число 15 чаще всего записывается в виде 0Fh. Почему так удобнее, вы поймете далее.

* * *

Заметки на полях

Почему в табл. 14.4 приведены именно эти числа? Числа, на единицу меньшие степени двойки, имеют в электронике и в программировании большое значение. Если вы посмотрите в таблицу внимательно, то увидите, что наибольшее число с количеством разрядов, равным степени двойки, содержит единицы во всех разрядах, т. е. как раз и равно этой степени минус единица. При этом количество всех чисел с таким количеством разрядов равно степени двойки. Другими словами, память, содержащая ровно 256 (28) ячеек, будет иметь номер (адрес) последней ячейки, равный 255, или FFh. Наибольшее число, до которого может досчитать 8-разрядный двоичный счетчик, также равно FFh, поскольку если подать на него еще один импульс (257-й по счету), он обнулится, ибо 9-го разряда, где могла бы записаться старшая единица, у него не существует. Потому с такими числами приходится иметь дело очень часто, даже чаще, чем с собственно степенями двойки.

* * *

Сложнее переводить из десятичной системы, и для этого в учебниках рекомендуется устрашающая процедура, основанная на делении столбиком (см., например [17]). Я сейчас попробую вам показать модификацию этого способа, который позволяет переводить числа в двоичную систему несколько более простым методом, причем небольшие числа можно переводить даже в уме.

Для начала запомним, что разряды двоичного числа нумеруются с нуля — т. е., к примеру, разряд номер 3 окажется четвертым справа. Теперь пусть мы имеем, например, десятичное число 59. Подбираем наибольшую степень двойки из табл. 14.3, не превышающую этого числа: 32, что есть 5-я степень. Ставим 1 в 5-м разряде: 100000. Вычитаем подобранную степень из исходного числа (59–32 = 27) и подбираем для остатка также степень, его не превышающую: 16 (24). Ставим единицу в 4-м разряде: 110000. Повторяем процедуру вычитания-подбора: 27–16 = 11, степень равна 8 (23), ставим единицу в 3-м разряде: 111000. Еще раз: 11 — 8 = 3, степень равна 2 (21), так что 2-й разряд оказался пропущен, ставим в нем ноль, а единицу во 1-м разряде: 111010. Последнее вычитание дает 1, которую и ставим в младший (нулевой) разряд, окончательно получив 5910 = 1110112.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*