Перевод между СС с основаниями, являющимися степенями двойки

1 012344

˛˛˛

А16 АВС901

16 FСА5

АСС5А6


Если результат операции выходит за пределы диапазона системы, т.е указатель переходит против часовой стрелки через 0, то нам приходится делать заем из старшего разряда. В этом случае добавляем к младшему разряду основание СС. Например, найдем разность между 10001 и 101 в 2-й СС:


ØØØ

- 101

Начинаем вычитание с младшего разряда: 1-1=0. В следующем разряде 0-0=0. В 3-м разряде нужен заем. Этот заем равен основанию счисления 2-й СС: 10. Взять заем из 4-ого от конца разряда нельзя, т.к. там 0. Обращаемся в самый сташий разряд { 1 }, делаем заем сначала в 4-й, а затем в 3-й от конца разряд.

Получаем, что 10001-101=1100.


Примеры: представить в 2-й СС числа:

5710=32+16+8+1=1*25+1*24+1*23+1*20=1110012

51110=256+128+32+16+8+4+2+1=1*28+1*27+1*26+1*25+1*24+1*23+1*22+1*21*1+20=

=1111111112

10 сс 2 сс 3 сс 4сс 5 сс 6 сс 7 сс 8 сс 9 сс 16 сс
                   
                   
                   
                   
                   
                   
                   
                   
                   
                  A
                  B
                  C
                  D
                  E
                  F
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                  1A
                  1B
                  1C
                  1D
                  1E
                  1F
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                  2A
                  2B
                  2C
                  2D
                  2E
                  2F
                   
                   
                   

представить в 8-й СС числа:

5710=56+1=7*81+1*80=718

51110=7*64+7*8+7*1=7*82+7*81+7*80=7778

представить в 16-й СС числа:

5710=3*16+9=3*161+9*160=3916

51110=256+15*16+15*1=162+15*161+15*160=1FF16

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

производятся в исходной СС, например:

2510 ®?2

2510=110012 ® 1*24+1*23+0*22+0*21+1*20=2510

Для простоты написания перевода в 2-ю СС используется запись вида: ® (рис. справа)

Правило для перевода из 10-й в любую другую СС для дробных чисел: чтобы правильную дробь перевести из СС с основанием 10 в СС с основанием q, нужно последовательно умножать дробную часть (сначала самого числа, а потом получающихся произведений) на новое основание q до тех пор, пока:

æ либо дробная часть получаемого произведения на станет равна 0;

æ либо не будет достигнута нужная точность – заданное число цифр после запятой;

В новой СС число запишется в виде последовательности целых частей получаемых произведений, начиная с первого.

См. пример слева на схеме.

0.12510=0.0012

Все действия производятся в исходной СС.

Пример: 234.6710 ®?2

© переводим целую часть; (см. схему)

© переводим дробную часть: 0.67*2=1.34

у 1.34 отбрасываем целое – 1, и снова умножаем на: 0.34*2=0.68 и 0.68*2=1.36;

© снова отбрасываем целое и получаем 0.36*2=0.72 и т.д.;

© умножение продолжается до тех пор, пока не получится целое число, т.е. пока после запятой в результате умножения будет 0. Как правило, достаточная точность – 3 или 4 знака после запятой;

© собираем результат (целое – снизу вверх, дробное -сверху вниз):

Результат приблизительный, т.к. выполнялось условие точности – 4 знака после запятой.

Перевод между СС с основаниями, являющимися степенями двойки

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

1234.0778=001 010 011 100.000 111 1112=1 010 011 100.000 111 1112

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

11.10012=011.100 1002=3.448

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

1234.АВ7716=0001 0010 0011 0100.1010 1011 0111 01112=

=1 0010 0011 0100.1010 1011 0111 01112

При переходе из 8-й СС в 16-ю СС и обратно используется двоичный вспомогательный код:

1234.АВ7716=0001 0010 0011 0100.1010 1011 0111 01112=

=001 001 000 110 100.101 010 110 111 011 1002=11064.5267348

120.348=001 010 000.011 1002=0101 0000.0111 00002=50.716


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: