fon1

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

В мире электроники существуют аналоговые и цифровые схемы. Впрочем, не только в мире электроники. Если немного отвлечься от темы, то признаки "аналогового" и "цифрового" можно найти и в окружающей нас природе. Все что равномерно, непрерывно и легко можно разделить на кусочки любых размеров, - это аналоговое. Но когда появляются неделимые частицы, и оказывается что изучаемый предмет состоит из строгих по размеру "кубиков" - это уже похоже на "цифровой мир".
Вот не очень хороший, но очень наглядный пример: стена построенная из монолитного бетона и кирпичная. В стенах монолитного дома нет каких- то строго размеренных частей, а кирпичная стена состоит из определенного числа "элементарных" кирпичиков. Поэтому, если сделать стену из бетона круглой формы, то она и будет округлой, а вот кирпичная получится вся в ступенечку.
Вот точно так же и в электронике. Если в аналоговой схеме график, например, линейного роста напряжения будет выглядеть так, как на рисунке 1а, т.е. представлять собой "гладкую" равномерную линию, то при синтезировании этой линии цифровой схемой она получится "ломанный", как бы состоящий из "кирпичиков" (рис.1б).
tsifr elektronika1 Короче говоря, аналоговая величина может принять любое значение, а вот цифровая состоит из элементарных неделимых частиц - нулей и единиц, характеризующие что "есть напряжение" (единица) и "нет напряжения" (ноль). А между ними - резкий скачок без всяких серых непонятностей и полумер.
Выходит, что цифровая техника - это соединение двух крайностей: черное и белое, единица и ноль, есть и нет. Но как же так получается, что цифровая аппаратура создает отличный звук, глубокое изображение с миллионами полутонов? Все очень просто, - размер элементарного "кирпичика" выбран достаточно маленьким. А стена, состоящая из очень большого количества маленьких "кирпичиков" при рассмотрении с некоторого расстояния, выглядит монолитной. Но зато число и положение этих " кирпичиков" математически строго рассчитано, чтобы показать нам все миллионы полутонов и цветов.
В общем, то что показано на рисунке 1 является оцифровкой аналоговой величины. Плавно возрастающее напряжение заменяется набором четких ступенек. И чем меньше эти ступеньки, и чем больше их количество, тем качественнее будет результат процесса оцифровки.
К примеру, давайте попробуем оцифровать процесс заполнения стакана водой.
Сначала зададимся контрольными уровнями - пусто и полно. Если меньше половины стакана - пусто, если больше - полно.
Начинаем набирать воду.
Меньше половины (пусто) - "0".
Больше половины (полно) - "1".
Так, хорошо. Но может выйти явный недолив, так как полным стаканом можно признать на каплю больше половины, а пустым - на каплю меньше половины.
Плохо. Неточно. Нужно увеличить коэффициент дискретизации, т.е. установить больше равных контрольных уровней. Например, "пусто", "одна треть", "две трети", "полный".
Снова набираем воду в четыре этапа.
1) Меньше трети (пустой) - 0, первая часть 0.
2) Больше трети (пусто) - 0, вторая часть 1.
3) От трети до двух третий (полно) - 1, вторая часть 0.
4) От двух третий до трех третих (полно) - 1, вторая часть 1.
Таким образом, что получается:
пусто = 00, треть = 01, две трети = 10, полный = 11.
Точность стала выше и недолив меньше.
То есть мы описали четыре состояния воды в стакане с помощью двух цифровых переменных - двух бит, оперируя двухразрядными двоичными числами (00, 01, 10, 11), или двухбитными числами.
Бит - элементарная неделимая частица информации.

Привычная дли человека система счисления, - десятеричная. Если вдуматься, то эта система не очень удобная. Но так уж сложилось исторически. Возможно на это повлияло то, что первобытный человек учился считать на собственных пальцах. Для цифровой же технике более удобна двоичная система, в которой либо напряжение есть, либо его нет.
Кроме двоичной и десятеричной систем счисления есть и другие, например: восьмеричная, шестнадцатеричная. Название системы счисления говорит о ее основании, - т.е. количестве значений, которое может принять один разряд числа в данной системе. Для десятеричной системы счисления основание равно 10 (от 0 до 9, - всего 10 значений). В двоичной основание = 2 (0 или 1, - всего 2 значения).
В десятеричной системе после окончания значений одного разряда добавляется следующий старший разряд. В двоичной - то же самое.
Вот как можно посчитать от нуля до 10 в двоичной системе:
0 =0,
1 = 1 - добавляем еще разряд,
2 = 10,
3 = 11 - добавляем еще разряд,
4 = 100,
5 = 101.
6 = 110,
7 = 111 - добавляем еще разряд,
8 = 1000,
9 = 1001,
10 = 1010.
Таким образом для счета до 10 необходимо четыре бита. Теперь запишем это правильно:
0 = 0000
1 = 0001
2 = 0010
3 = 0011
4 = 0100
5 = 0101
6 = 0110
7 = 0111
8 = 1000
9 = 1001
10 = 1010
Можно продолжить до исчерпания четвертого разряда:
11 = 1011
12 = 1100
13 = 1101
14 = 1110
15 =1111
Обратите внимание на то что новый разряд появляется каждый раз после удвоения значения предыдущего разряда:
1 = 1,
2 = 10,
4 = 100,
8 = 1000,
16 = 10000,
32 = 100000,
64 = 1000000 и т.д.
То есть:
1 = 20 = 1
2 = 21 = 10
4 = 22 = 100
8 = 23 = 1000
16 = 24 = 10000
32 = 25 = 10000
64 = 26 = 1000000.
Возьмем к примеру любое произвольное десятичное число, например, 122:
122 = 1·102 + 2·101 + 2·100.
Мы умножили значение каждого разряда на основание системы счисления, возведенное в степень, равную номеру разряда (номер младшего разряда "0").
Таким образом,
0 разряд = 2,
1 разряд = 2,
2 разряд = 1.
А теперь представим его в виде суммы значений 1·2N (думаю понятно, что единицу можно отбросить, так что значения будут 2N), где N - номер разряда двоичного числа, начиная с нулевого разряда:
122 = 26 + 25 + 243 + 22 + 21
или, если не хочется возиться со степенями:
122 = 64+32+16+8+2
Самое старшее число было 64, то есть, 26, значит разрядов в двоичном числе будет 6 + 1 = 7.
Запишем в столбик:
1000000 (64)
0100000 (32)
0010000 (16)
0001000 (8)
0000010 (2)
суммируем:
1111010 (122)
Таким образом, десятичное число 122 в двоичной системе выглядит так: 1111010.

А теперь попробуем выполнить обратное действие, и преобразуем двоичное число 1111010 в десятичное.
Мы видим что в числе семь разрядов. Так как разряды считаются с нулевого, а не с первого, то значение степени N старшего разряда будет 7 - 1 = 6.
tsifr elektronika1a Возникает вопрос: как можно это все быстро делать практически в уме, или хотя бы на обычном калькуляторе? Ведь на простом "бытовом" калькуляторе довольно сложно возводить что-либо в N-ю степень.
К примеру, нам нужно преобразовать число 147 в двоичную систему. Берем калькулятор, и начинаем умножать:
1, (1) разряд)
1·2 = 2, (2)
2·2 = 4, (3)
4·2 = 8, (4)
8·2 = 16, (5)
16·2 = 32, (6)
32·2 = 64, (7)
64·2 = 128, (8)
- стоп, 128 - самое большое число близкое к 147. Чтобы достигнуть 128-и мы сделали 8 действий. Значит разрядов 8.
Действуем дальше:
147 - 128 = 19; один раз из 147 можно вычесть 128 - значит единица в 8-м разряде.
Осталось 19 - 16 = 3; один раз из 19 можно вычесть 16, то еще есть единица в 5-м разряде Осталось 3 - 2 = 1, один раз из 3 можно вычесть 2, то есть единица во 2-м разряде. Осталось 1 - 1 = 0. Единица в 1-м разряде. Во всех остальных разрядах нули.
Пишем: 10010011

Чтобы еще больше упростить себе жизнь можно нарисовать таблицу:
tsifr elektronika01 в которой записываем единицы в клетках тех разрядов, где делали вычитания. В оставшие пустые клетки записываем нули.
Например: 147 - 128 = 19
tsifr elektronika02 19 - 16 = 3
tsifr elektronika03 3 - 2 = 1
tsifr elektronika04 1 - 1 = 0
tsifr elektronika05 Соответственно можно делать и обратное действие, - преобразование двоичного в десятичное. Записываете двоичное число в эту таблицу и суммируете десятичные числа в клетках в которых единицы: 128 + 16 + 2 + 1 = 147.

Андреев С.

РК 2012/07

<< Предыдущая Cледующая >>

Вверх

radionet