naf-st.narod.ru

Сегодня:


naf-st.narod.ru
Добавить в Избранное и сделать доступной работу автономно
В Избранное
Сделать стартовой
На Старт!
На главную
Главная
Радиоэлектроника
Электроника
Качаем всё, что качается!
Файлы
Гостевая
Гостевая
Накатать письмо
Связь
Лучшая портативная техника. Плееры Камеры Телефоны Компьютеры


Радиокомпоненты
Маркировка
Цифровая техника
Источники питания
Звукотехника
Генераторы
Пьезоэлектроника и акустоэлектроника
Квантовая электроника
Цифровая запись

Нужен качественный хостинг?

Еще в тему:


Булева алгебра
Минимизация
RC-цепи

Представление чисел в цифровых устройствах


Итак, как ранее упоминалось, в цифровых устройствах сигналы изменяются дискретно, принимая значения нуля и единицы. Любую аналоговую величину (т. е. непрерывную функцию) можно представить в виде комбинации нулей и едениц. Такая комбинация и называется цифровым кодом. Как зафигачить непрерывную функцию в цифровой код поглядим потом, заодно изучим теорему Котельникова, дело тоже нужное.

Что же такое ноль и единица? Логический ноль - это сигнал, напряжение которого равно или близко к нулю (к "земле", если хотите), логическая единица - сигнал, напряжение которого равно или близко к напряжению источника питания. Для тех, кто в танке, ноль - это када напруги нет, адын - када есть. Еще сигнал логического нуля (или просто нуля) называют напряжением низкого уровня или просто низким уровнем. Соответственно, единичку кличут напругой высокого уровня или просто высоким уровнем, ну, там, к примеру, сигнал высокого уровня, низкий уровень напряжения и т. п.

Ну что ж, с нулями разобрались (если нет, перечитывай заново), будем теперь запихивать себе в башку такую галиматью, как цифровые коды. Пожалуй самым распространенным в цифровой технике является так называемый двоичный код. Мы же все привыкли к десятичному коду, который численно выражается, как ряд чисел от 0 до 9. Комбинацией этих символов можно получить любое число. А двоичный? Это явно не ряд от 0 до 1 (или 2).

Двоичный код потому двоичный, что в нем используются степени числа 2. Вся фишка состоит в том, что двоичный код есть сумма произведений вот этих 2n чисел на 0 или 1, ну в случае умножения на нуль получаем нуль. Числа 2n называются весовыми коэффициентами. Сложив пару-тройку чисел формата 0x23+1x22+0x21+1x20 получим желаемую величину, в данном случае цифру 5. В примере знак x не всеми любимая буква, а знак умножения. Слышу вопрос: "Почему именно 5?". Считаем: 0 на что-либо равно ноль, 2 во второй равно 4, любое число в степени 0 есть единица (надо было учить математику). Складываем 4 и 1 получаем 5. Более понятно это можно показать спешиал таблицей, которую можно назвать таблицей перевода десятичных чисел в двоичные и, кстати, наоборот

Десятичное число Весовые коэффициенты
23 22 21 20
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
10 1 0 1 0
11 1 0 1 1
12 1 1 0 0
13 1 1 0 1
14 1 1 1 0
15 1 1 1 1

Охренеть, да? На первый взгляд какая-то фигня. Объясняю, в чем суть. Во-первых, двоичные числа читают справа налево. Самое правое число (0 или 1) называется младшим разрядом, самое левое - старшим разрядом. В таблице показаны коды 4-х разрядных двоичных чисел, причем 20 есть младший разряд числа, 23 старший разряд. Чем выше степень весового коэффициента старшего разряда (2n), тем выше разрядность двоичного числа. Суть перевода двоичного числа в десятичное заключается в сумме всех весовых коэффициентов, причем, единицы и нули показывают, какие коэффициенты складывать. Если в коде числа стоит 1, то весовой коэффициент, соответствующий этой единице, складывается со следующим весовым коэффициентом, т. е. со следующим в разряде числе. Если в коде числа стоит 0, то весовой коэффициент, соответствующий этому нулю, будет равен нулю, поскольку любое число, умноженное на 0 есть не что иное, как 0. То есть, если имеется двоичное число, например, 1011, чтобы перевести его в десятичное надо первый символ (в данном случае 1) умножить на соответстующий ему весовой коэффициент (в данном случае 23=8), прибавить следующий символ (0 x 22) и так далее. Получается примерно такое: 1 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 11. Принцип ясен?

Очевидно, что для всего этого необходимо иметь представление о степенях числа 2. Вот табличка со значением степеней числа 2 вплоть до 215

Степень 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Число 0 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768

Особо наблюдательные может быть заметили в первой таблице одну закономерность. В младшем разряде поочередно меняется 0 и 1. В следующем разряде - два нуля и две единицы, в следующем - четыре нуля и четыре единицы. Таким образом, зная эту закономерность, запоминать эту таблицу не требуется. Всегда можно где-нибудь нарисовать нолики и единички и перевести двоичные числа. Также следует отметить, что 4 разряда не предел. Если слева пририсовать еще нули и единицы, получим 5-ти разрядный код и т. д. до бесконечности. Суть понятна?

Каждая единица либо ноль, т. е. один разряд в двоичном коде называется битом, соответственно, в первой таблице все числа четырехбитные. Восьмиразрядное двоичное число называется байтом, т. е. в одном байте восемь бит. Еще восьмиразрядное двоичное число называется словом. Т. е. слово - это 1 байт или 8 бит, или для тех, кто в танке, в слове 8 циферок, каждая из которых принимает значение 0 или 1.

Ахтунг: в цифровой технике считают от 0, а не как мы - от 1. Т. е. максимальное число в 4-х разрядном двоичном коде не 16, а 15, в пятиразрядном - 31, а не 32 и т. п.

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

Восьмиричный код


Этот код аналогичен двоичному, только разрядов 3 и максимальное число будет равно 7 (в двоичном коде 111). Подобный код почти не используется, да и в некоторых книгах про него вообще ничего не пишут. Просто он есть.

Двоично-десятичный код


Двоично-десятичный код также полностью аналогичен двоичному. Единственное отличие состоит в том, что в десятичном эквиваленте такой код представляется, как ряд чисел от 0 до 9. То есть, если посмотреть на первую таблицу, до числа 9 двоичные коды будут двоично-десятичными, после числа 9 - просто двоичными. По аналогии с десятичными числами, чтобы представить, допустим, число 243 в двоично-десятичном коде, необходимо взять двоичный эквивалент чисел 2, 4 и 3. Т. е. 243=0010 0100 0011. Каждая четырехразрядная группа двоично-десятичного кода называется тетрадой. Т. е. число 243 мы записали в виде трех тетрад, или по аналогии с десятичными числами - комбинацией тетрад. Двоично-десятичный код используется для индикации чисел в цифровых индикаторах.

Шестнадцатиричный код


Иногда шестнадцатиричный код называется гексагональным. Такой код широко используется в вычислительной технике. Еще он называется код с основанием 16 (двоичный зовут с основанием 2). В отображении шестнадцатиричного кода используются цифры от 0 до 9 и первые буквы латинского алфавита A, B, C, D, E, F. Если в двоичном коде используются степени числа 2 (см. выше), то в шестнадцатиричном коде - степени числа 16. Например, число 157 представляется, как 9 x 161 + D x 160, т. е. 157=9D. Вообще же, шестнадцатиричный код в основном используется для упрощения представления двоичных чисел. Посмотрите, для отображения числа 157 потребовался бы 8-ми разрядный двоичный код (а именно 1001 1101), а в 16-тиричном коде число содержит всего 2 символа (9D).

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

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


Теперь немного узнав о системах счисления хорошо бы освоить перевод чисел из одной системы в другую. Начнем с перевода десятичного числа в двоичное. Для отображения чисел в разных системах используются нижние индексы, например, число10 - десятичное число, число2 - двоичное число, число16 или числоH - 16-тиричное число.

Для перевода десятичного числа в двоичное нужно десятичное число делить на 2 до получения минимального остатка. При делении десятичного числа на 2 образуются остатки, равные 0 или 1. Первый остаток будет младшим разрядом. Последний остаток будет предпоследним перед старшим разрядом. Результат деления последнего числа является старшим разрядом и он всегда равен 1. Например, переведем малюхонькое число 21 в двоичный код.

21/2=10 Остаток 1
10/2=5 Остаток 0
5/2=2 Остаток 1
2/2=1 Остаток 0

Последнее число 2/2=1. Эта единица идет в старший разряд. В следующий разряд идет остаток от этого деления (0) и т. д. до последнего разряда, т. е. считаем снизу вверх. В результате деления получили код 10101. Проверим: 16 + 4 + 1 = 21. Ты гляди, работает! А ну-ка, переведем число посложней, типа 274.
274/2=137 Остаток 0
137/2=68 Остаток 1
68/2=34 Остаток 0
34/2=17 Остаток 0
17/2=8 Остаток 1
8/2=4 Остаток 0
4/2=2 Остаток 0
2/2=1 Остаток 0


Полученное число 1 0001 0010. Проверим: 256 + 16 + 2 = 274. Работает, твою налево!

Итак, суть понятна? Для простоты и экономии места на странице умножение нулей на весовые коэффициенты не показано. То есть, для первого примера полный формат имеет вид:
1 x 16 + 0 x 8 + 1 x 4 + 0 x 2 + 1 x 1 = 21.

Можно переводить и по-другому. Лично мне удобней переводить так. Если имеется какое-то число, например, 43, оно, как видно, меньше 64, но больше 32, значит первые два разряда 01. Из 43 вычитаем 32 получаем 11. Разряд с весовым коэффициентом 16 здесь не канает, ставим 0. Число 11 представляется как 1011 (см. первую таблицу). Итого имеем: 0010 1011. Первые два нуля стоят для красоты.

Как же перевести наоборот, из двоичного в десятичное. Еще проще. Это написано чуть-чуть выше, где проверяется результат перевода десятичного числа в двоичное. Допустим есть число 1011 0101. Где стоит 1, имеет право на жизнь весовой коэффициент, где 0 - весовые коэффициенты "сдохли". Считаем: 128 + 0 + 32 + 16 + 0 + 4 + 0 + 1 = 181. Для тренировки можете проверить переводом его в двоичное.

Перевод шестнадцатиричных чисел туда сюда осуществляется аналогично. Делим десятичное число на 16 до получения остатка, причем меньшего 16. При делении десятичного числа остатки получаются в виде ряда чисел от 0 до 15. Числа от 10 до 15 заменяются буквами латинского алфавита A, B, C, D, E, F. Как и при переводе в двоичный код, последний остаток предшевствует старшему разряду, результат деления последнего числа есть старший разряд. Переведем число 845 в 16-тиричный код.
845/16 = 52 Остаток 13 = D
52/16= 3 Остаток 4

Полученное число 34D. Проверим: 3 х 162 + 4 x 161 + D x 160 = 845. D в шестнадцатиричном коде эквивалентно 13. Здесь также показан и обратный перевод. Умножаем числа 16-тиричного кода на 16 в степени и складываем.

Для перевода 16-тиричного кода в двоичный достаточно разбить число на отдельные символы (числа) которым соответствуют двоичные эквиваленты. То есть, то же число 34D разбиваем на 3, 4 и D и записываем двоичный код каждого элемента: 3 = 0011, 4 = 0100, D = 1101. 34D = 0011 0100 1101. Вот так, 10-разрядное двоичное число в 16-тиричном эквиваленте записывается всего тремя символами. Понятно, зачем шестнадцатиричный код? Для обратного перевода двоичное число разбивается на тетрады и каждой тетраде ставится в соответствие шетснадцатиричный эквивалент. Причем разбиение ведется справа налево. Если последняя тетрада не получается, т. е. в старшей тетраде всего 1, 2 или 3 единицы, к ним дописывают нули. Получается как в последнем примере, первые два нуля образуют тетраду совместно с единицами (число 3).

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

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

Математические операции над двоичными числами


Математические операции над двичными кодами просты до безобразия, по сравнению с десятичными цифрами.

Операция сложения выглядит так:

1101
+         
0110
_______
10011

В десятичном эквиваленте это 13 + 6 = 19. Следует помнить, что при сложении двух едениц получается ноль, а единица переносится в старший разряд.

Еще проще операция умножения:

1011   
х             
110
_______  
0000
1011    
1011        
________   
1000010     

При умножении на разряд множимое либо повторяется, либо записываются нули. В данном случае была произведена операция умножения 11 х 6 = 66.


Типа введения Основы алгебры логики
Высокие технологии на благо людям. Тысячи товаров. Лучший сервис. Быстрая доставка. Только в лучшем магазине. В ПОРТА.ру

При полном, либо частичном использовании материалов сайта naf-st.narod.ru в любых целях гиперссылка
обязательна!!!


© & ® 2003-2005 naf-st

Ахтунг!!!
Сайт перехал сюда:
http://naf-st.ru

Через пару секунд вы окажетесь на новом сайте. Если этого не произойдет, нажмите ссылку чуть выше...

Ахтунг!!!
Сайт перехал сюда:
http://naf-st.ru

Через пару секунд вы окажетесь на новом сайте. Если этого не произойдет, нажмите ссылку чуть выше...

Hosted by uCoz