Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







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





 

Так как десятичная система для нас удобна и привычна, все арифметические действия мы делаем в ней, то преобразование чисел из произвольной недесятичной (q ¹10) системы в десятичную удобно выполнять на основе разложения по степеням q, например:

11100111(2)= 1´27+1´26+1´25+0´24+0´23+1´22+1´21+1´20=128+64+32+4+2+1=231(10),

или 347(8)= 3´82+4´81+7´80=3´64+4´8+7=231(10)

Преобразование из десятичной в прочие системы счисления проводится с помощью правил умножения-деления. При этом целая и дробная части переводятся отдельно.

Рассмотрим алгоритм на примере перевода десятичного числа 231 в двоичную систему, совершенно аналогичен перевод из десятичной системы в любую q-ичную. Разделим число на два (основание системы) нацело 231¸2=115 и остаток 1, т.е. можно записать

231=115´21+1´20.

Число 115 (такой двоичной цифры нет) тоже может быть разделено нацело на 2, т.е. 115¸2=57 и остаток 1. По аналогии запишем

231=(57´2+1)´2+1= 57´22+1´11+1´20

аналогично продолжим процесс дальше

57¸2=28 остаток 1; 231=((28´2+1)´2+1)´2+1= 28´23+1´22+1´21+1´20

28¸2=14 остаток 0; 231=(((14´2+0)´2+1)´2+1)´2+1=14´24+1´22+1´21+1´20

14¸2=7 остаток 0; 231=((((7´2+0)´2+0)´2+1)´2+1)´2+1=7´25+1´22+1´21+1´20

7¸2=3 остаток 1; 231=(((((3´2+1)´2+0)´2+0)´2+1)´2+1)´2+1=3´26+1´25+1´22+1´21+1´20

3¸2=1; остаток 1; далее процесс продолжать нельзя т.к. 1 не делится нацело на 2

231=((((((1´2+1)´2+1)´2+0)´2+0)´2+1)´2+1)´2+1=1´27+1´26+1´25+1´22+1´21+1´20

Таким образом, последовательное деление нацело позволяет разложить число по степеням двойки, а это в краткой записи и есть двоичное изображение числа.

231 =1´27+1´26+1´25+0´24+0´23 +1´22+1´21+1´20 = 11100111(2)

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

_231|_ 2_

230| 115|_ 2_

1 114| 57| _2_

1 56| 28| _2_

1 28| 14| _2_ 231(10)=11100111(2)

0 14| 7 | _2_

0 6 | 3 |_ 2_

1 2| 1

1

Читая частное и остатки от деления в порядке обратном получению, получим двоичную запись числа. Такой способ перевода чисел называется правилом (алгоритмом) последовательного деления, очевидно, что он применим для любого основания.

Для дробных чисел правило последовательного деления заменяется правилом последовательного умножения, которое также рассмотрим на примере. Переведем 0.8125 из десятичной системы в двоичную систему счисления.

Умножим его на 2, т.е. 0.8125´2=1.625 или 0.8125=(1+0.625)´2-1=1´2-1+0.625´2-1

Аналогично 0.625=(1+0.25)´2-1 или

0.8125=1´2-1+(1+0.25)´2-1 ´2-1=1´2-1+1´2-2+0,25´2-2, но 0.25=0.5´2-1

0.8125=1´2-1+(1+0.5´2-1)´2-1 ´2-1=1´2-1+1´2-2+0,5´2-3, но 0.5=1´2-1

0.8125=1´2-1+1´2-2+1´2-1´2-3 =1´2-1+1´2-2+1´2-4.

В итоге получаем, что 0.8125(10) =1´2-1+1´2-2+1´2-4=0.1101(2). Сокращая выкладки, получим правило (алгоритм) последовательного умножения.

   
   
   
   
   

 

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

Если ведутся приближенные вычисления, то последний разряд является сомнительным, и для обеспечения в приближенных вычислениях одинаковой точности в двоичной и десятичной записях числа без бесконечных дробей, достаточно взять число двоичных разрядов в (log210»3.3) 4 раза больше, чем десятичных.

Между двоичной системой счисления с одной стороны и восьмеричной и шестнадцатеричной (заметим 8 и 16 – есть третья и четвертая степени двойки) с другой стороны, существует связь, позволяющая легко переводить числа из одной системы в другую. Рассмотрим на примере:

231.8125(10)=11100111.1101(2)= 1´27+1´26+1´25+1´22+1´21+1´20+1´2-1+1´2-2+1´2-4 .

Для перевода в шестнадцатеричную систему счисления сгруппируем целую и дробную части в группы по четыре члена и вынесем в каждой группе за скобки множители кратные 24, получим:

(1´23+1´22+1´21+0´20)´24+(1´23+1´22+1´21+1´20)+(1´23+1´22+0´21 +1´20) ´2-4= =(1´23+1´22+1´21+0)´161+(1´22+1´21+1´20)´160+(1´23+1´22+0´21 +1´20) ´16-1= =14´161+7´160+13´16-1 =E7.D(16)

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

Аналогичное правило для восьмеричной системы читатель выведет сам.







Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...

Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)...

ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.