|
Двоичная и десятичная система счисления. Перевод из двоичной в десятичную систему счисления.
Перед непосредственным переводом числа из одной СС в другую стоит внести некоторые пояснения. Число означает количество предметов. Количество предметов всегда и для всех едино: что для англичанина, что для русского 23 стула означает, что за них может сесть 23 человека. Другое дело, что это количество русские называют «двадцать два», а англичанин «twenty three». Также можно это число записать как «23», а можно «XXIII». То есть количество едино, различаются лишь только формы представления. У нас принято количество записывать цифрами в десятичной системе счисления (СС), но так было не всегда. В Европе данная позиционная СС (ее называют «арабской») появилась и окончательно закрепилась только спустя 2 века после опубликования трактата Аль Хорезми «Об индийском счете». До этого в Европе была распространена римская непозиционная СС. Основным аргументом за арабскую СС была легкость арифметических операций, тогда как при использовании римской СС приходилось пользоваться специальным устройством «абак».
Согласно принципам Фон Неймана, любая ЭВМ должна работать только в двоичной системе счисления. Первая электронно-вычислительная машина Mark1, которую иногда ошибочно называют первым компьютером, работала в десятичной СС, и в качестве рабочих элементов имела электромеханические реле. Эти реле работали в режиме на 10 положений (по мере поступления сигнала от самого слабого (1) до самого сильного (9)). Понятно, что такая архитектура не совсем удачна, поскольку во-первых, любые механические детали заведомо менее эффективны, нежели электронные, т.к. имеют конечное время срабатывания, которое относительно велико. Во-вторых, главным минусом такой архитектуры являются именно эти 10 положений. Сигнал, например, цифры «6» очень похож на сигнал цифры «5», магнитные свойства катушки при этих сигналах приблизительно одинаковые, поэтому были возможны ошибки.
Решением является именно двоичная СС. При такой архитектуре необходимы только 2 сигнала: «1» и «0», что аналогично режимам «включено» и «выключено», то есть «есть сигнал» или «нет сигнала». Хранить данные в двоичной СС не составляет труда: на магнитных лентах и дисках материал намагничен или размагничен, отверстие есть или нет в перфолентах и перфокартах.
Первую машину, работающую именно в двоичной СС разработал немецкий математик, работающий при дворе Российского императора Петра I, Готфрид Вильгельм фон Лейбниц. Однако его творение не получило широкого применения. Результат вычислительных операций выдавался в двоичной СС, в виде последовательности шариков, где черный шарик означал «1», а белый означал «0».
Перевод числа из двоичной системы счисления в двоичную систему счисления
В десятичной СС используется 10 цифр, от «0» до «9». Это связано, видимо, с тем, что у человека 10 пальцев.
Возьмем, например, число 2537, записанное в десятичной СС.
253710 = 2∙1000+5∙100+3∙10+7 = 2∙103+5∙102+3∙101+7∙100.
То есть, каждое значение цифры мы умножаем на основание СС в степени, соответствующее разряду цифры. Рассуждая аналогично, можно сделать вывод, что
1011010112 = 1∙28+0∙27+1∙26+1∙25+0∙24+1∙23+0∙22+1∙21+1∙20. Далее, производя действия как в десятичной СС, получим:
256+64+32+8+2+1 = 36310. То есть, 1011010112 = 36310.
Следует обратить внимание, что
То есть, если в записи числа в двоичной СС последней цифрой стоит «1», то число нечетное, если «0» - число четное.
Существует другой способ перевода числа из двоичной СС в десятичную. Нужно построить таблицу и в ее заголовке отобразить все степени двойки, начиная справа. Далее, любое число в двоичной СС записывается в эту таблицу, начиная с конца, справа налево. Запись этого числа в десятичной СС будет получена путем сложения тех чисел из заголовка таблице, под которыми стояла цифра «1».
Например, возьмем число 11001001012.
Под выделенными степенями числа 2 стоит цифра «1». Их мы и складываем. Получаем, что 11001001012 = 512 + 256 + 32 + 4 + 1 = 80510.
Перевод числа из десятичной системы счисления в двоичную систему счисления
Разделить число а на число b по определению означает найти такое число с, что
a = b ∙ c.
Разделить число а на число b с остатком по определению означает найти такие числа с и d, что
a = b ∙ c + d, где d < b.
Возьмем число 253710. Как было уже ранее показано,
253710 = 2∙103+5∙102+3∙101+7 =
Разделив число на основание системы счисления, в остатке выделяется последняя цифра в записи этого числа в данной системе счисления. Таким образом, разделив число на 2, в остатке получается цифра, соответствующая последней цифре в записи этого числа в двоичной системе счисления.
Повторяя процесс для числа с до тех пор, пока с не станет меньше основания системы счисления, можно выделить все цифры в записи данного числа. Переведем число 253710 в двоичную СС.
2537 = 1268 ∙ 2 + 1;
1268 = 634 ∙ 2 +0;
634 = 317 ∙ 2 + 0;
317 = 158 ∙ 2 + 1;
158 = 79 ∙ 2 + 0;
79 = 39 ∙ 2 + 1;
39 = 19 ∙ 2 + 1;
19 = 9 ∙ 2 + 1;
9 = 4∙ 2 + 1;
4 = 2 ∙ 2 + 0;
2 = 1 ∙ 2 + 0;
1 = 0 ∙ 2 + 1.
Переписывая все остатки, начиная с конца, получим, что 253710 = 1001111010012.
Существует другой способ перевода из десятичной системы счисления в двоичную. Для этого необходимо опять взять таблицу со степенями двойки.
Переведем число 61810 в двоичную СС. Ищем наибольшее число из степеней двойки, которое не превосходит данного числа и ставим под ним цифру «1».
618 = 1 ∙ 512 + 106.
Производим те же действия с числом 106 в этой же таблице.
106 – 64 = 42;
42 – 32 = 10;
10 – 8 = 2;
2 – 2 = 0.
Заполнив все пустые ячейки «нулями» получим запись числа в двоичной системе счисления. Таким образом, 61810 = 10011010102.
Перевод в двоичную СС дробную часть числа
Как уже было показано, систематическая запись числа выглядит следующим образом: a1a2a3…an-1an = aqn-1 + aqn-2+…+aq1 + aq0, где q – основание системы счисления. Нетрудно догадаться, что a1a2a3…an-1an,a-1a-2a-3…= aqn-1 + aqn-2+…+aq1 + aq0 + aq-1 + aq-2 + aq-3….
Например, для десятичной СС запись числа 1234,5610 = 1∙103 + 2∙102 + 3∙101 + 4∙100 + + 5∙10-1 + 6∙10-2.
Для двоичной СС 11010,1012 = 1∙24 + 1∙23 + 0∙22 + 1∙21 + 0∙20 + 1∙2-1 + 0∙2-2 + 1∙2-3. Для того, чтобы перевести число из двоичной СС в десятичную, достаточно просто найти значение правой части, выполняя операции как в десятичной СС. С другой стороны, 0,1012 = 1∙2-1 + 0∙2-2 + 1∙2-3= 2-1(1+0∙2-1 + 1∙2-2). То есть, для того, чтобы перевести дробную часть числа, записанной в десятичной СС, в двоичную СС, необходимо умножить дробную часть на 2, и брать получившуюся целую часть. Затем, процедуру повторять для дробной части получившегося произведения. Как видим, данный процесс может быть бесконечным. При получении уже встречающейся дробной части, мы получаем циклическую двоичную дробь.
Например, переведем 0,3210 в двоичную СС.
0,32 ∙ 2 = 0,64.
0,64 ∙ 2 = 1,28.
0,28 ∙ 2 = 0,56.
0,56 ∙ 2 = 1,12
0,12 ∙ 2 = 0,24.
0,24 ∙ 2 = 0,48.
0,48 ∙ 2 = 0,96.
0,96 ∙ 2 = 1,92.
0,92 ∙ 2 = 1,84.
0,84 ∙ 2 = 1,68.
0,68 ∙ 2 = 1,36.
0,36 ∙ 2 = 0,72.
0,72 ∙ 2 = 1,44.
0,44 ∙ 2 = 0,88.
0,88 ∙ 2 = 1,72
0,3210 = 0,01010001111(0101)2
Восьмеричная и шестнадцатеричная СС
Недостаток двоичной системы – быстрый рост числа разрядов, необходимых для записи больших чисел. Этот недостаток не имеет существенного значения для ЭВМ. Если же возникает необходимость кодировать информацию «вручную», например при составлении программы на машинном языке, то используют восьмеричную или шестнадцатеричную СС. Кроме того, шестнадцатеричную СС используют в MAC-адресах сетевых карт, а также для кодирования цвета. Числа в этих системах читаются легче и требуют в 3 и 4 раза меньше разрядов, чем в двоичной СС. Перевод их в двоичную СС гораздо проще по сравнению с десятичной СС.
Как уже было сказано, перевод из двоичной СС в восьмеричную или шестнадцатеричную СС является побуквенным кодированием. То есть, одна цифра восьмеричной СС кодируется 3, а шестнадцатеричной СС – 4 цифрами двоичной СС. Например, 123,48 = 001 010 011,1002.
Для записи числа в шестнадцатеричной СС применяются цифры от 0 до 9, а также буквы от А до E, которые тоже называют цифрами.
Число 1А3В,916 = 1 1010 0011 1011,10002.
Для того, чтобы перевести число из двоичной СС в восьмеричную (шестнадцатеричную) нужно от запятой слева и справа разбить число на тройки (четверки) цифр и каждую такую группу заменить на соответствующую цифру в восьмеричной (шестнадцатеричной) СС.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|