Сегодня: '); //--> |
В Избранное |
На Старт! |
Главная |
Электроника |
Файлы |
Гостевая |
Связь |
Охренеть, да? На первый взгляд какая-то фигня. Объясняю, в чем суть. Во-первых, двоичные числа читают справа налево. Самое правое число (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. В следующем разряде - два нуля и две единицы, в следующем - четыре нуля и четыре единицы. Таким образом, зная эту закономерность, запоминать эту таблицу не требуется. Всегда можно где-нибудь нарисовать нолики и единички и перевести двоичные числа. Также следует отметить, что 4 разряда не предел. Если слева пририсовать еще нули и единицы, получим 5-ти разрядный код и т. д. до бесконечности. Суть понятна? Каждая единица либо ноль, т. е. один разряд в двоичном коде называется битом, соответственно, в первой таблице все числа четырехбитные. Восьмиразрядное двоичное число называется байтом, т. е. в одном байте восемь бит. Еще восьмиразрядное двоичное число называется словом. Т. е. слово - это 1 байт или 8 бит, или для тех, кто в танке, в слове 8 циферок, каждая из которых принимает значение 0 или 1. Ахтунг: в цифровой технике считают от 0, а не как мы - от 1. Т. е. максимальное число в 4-х разрядном двоичном коде не 16, а 15, в пятиразрядном - 31, а не 32 и т. п. Если во все это не вникать, то может показаться, что перевод чисел из одной системы в другую весьма сложен и не нужен. Однако, чтобы чего-нибудь соорудить в цифровой технике эту задачу приходится решать очень часто.
|
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).
Иногда, кстати, удобней переводить шестнадцатиричные числа в двоичные, а потом в десятичные и наоборот. Кому как нравится.
Существуют и другие специфические коды, например, семисегментный. Об этом будет рассказано дальше, при изучении использующих подобные коды устройств.
Математические операции над двичными кодами просты до безобразия, по сравнению с десятичными цифрами.
Операция сложения выглядит так:
В десятичном эквиваленте это 13 + 6 = 19. Следует помнить, что при сложении двух едениц получается ноль, а единица переносится в старший разряд.
Еще проще операция умножения:
При умножении на разряд множимое либо повторяется, либо записываются нули. В данном случае была произведена операция умножения 11 х 6 = 66.
Типа введения | Основы алгебры логики |
При полном, либо частичном использовании материалов сайта naf-st.narod.ru в любых целях гиперссылка |
|
|