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