Хотя компьютер работает в 2-ой системе счисления, но часто с целью облегчения записи знаков на бумаге или ввода их с клавиатуры компьютера удобнее пользоваться 8-ми или 16-ми числами, тем более что, процедура взаимного перевода чисел из каждой из этих систем в 2-ую и обратно очень проста.
Перевод чисел из 10-ой системы счисления в 8-ую производится (по аналогии с 2-ой системой счисления) с помощью делений на 8 (для целой части) и умножений на 8 (для дробной части). Например, переведем число 58,32(10):
Таким образом, 58,32(10) = 72,243... (8).
Проверим перевод (10®8) обратным переводом (8®10):
72,243(8)=7´81+2´80+2´8-1+4´8-2+3´8-3=56+2+ =58 =58,3183593.
Оценим погрешность перевода: D=58,32 – 58,3183593=0,0016407. Ошибка, как видно, имеется лишь в 3-ем знаке после запятой.
Заметим, что из конечной дроби в одной системе может получиться бесконечная дробь в другой.
Перевод чисел из 10-ой системы счисления в 16-уюпроизводится аналогично. Переведём 152,86(10) в 16-ую систему счисления.
Результат перевода: 152,86(10)=98,DC2(16). Осуществим проверку перевода (10®16) обратным переводом (16®10):
|
|
98,DC2(16)=9´161+8´160+13´16-1+12´16-2+2´16-3=144+8+ =
=152 =152 =152,8598632(10).
Оценим погрешность перевода: D=152,86(10) – 152,8598632(10)=0,0001368(10).
Погрешность видим в 4-ом знаке после запятой, неплохая точность.
С практической точки зрения представляет интерес процедура взаимного преобразования 2-ых, 8-ых и 16-ых чисел. Для этого воспользуемся таблицей 2 чисел от 0 до 15 (в 10-ой системесчисления) и их соответствий в других системах счисления.
Таблица 2 – Соответствие чисел в различных системах счисления
Двоичная | Восьмеричная | Десятичная | Шестнадцатеричная |
A | |||
B | |||
C | |||
D | |||
E | |||
F |
Из таблицы 2 видно, что для перевода 2-го числа в 8-ое необходимо разбить его влево и вправо от запятой (точки) на группы по 3 цифры (триады), причём крайние неполные триады можно дополнить нулями (это не изменяет содержимого числа). Затем каждую триаду заменить ее 8-ым эквивалентом. Например,
11101001,10001011(2) = 011 101 001, 100 010 110(2) = 351,426(8).
Перевод 2-го числа в 16-ое производится аналогично путем разбиения его влево и вправо от запятой (точки) на группы по 4 цифры (тетрады), причём крайние неполные тетрады можно дополнить нулями (это не изменяет
содержимого числа). Затем каждую тетраду заменить ее 16-ым эквивалентом.
Например,
11010110011,1101010111(2) = 0110 1011 0011, 1101 0101 1100(2) =
= 6B3,D5C(16).
Рассмотренные правила перевода (2®8 и 2®16) обладают свойством реверса (8®2 и 16®2),т.е. 8-ое (16-ое) число переводится в 2-ое путем замены каждой цифры числа соответствующей триадой (тетрадой) 2-ых цифр, благодаря тому, что числа 8=23 и 16=24 являются степенями (3 и 4) основания 2-ой системы счисления.
|
|
Рассмотрим еще один замечательный способ перевода чисел из 10-ой системы счисления в другую – метод вычитания степеней. В этом случае из числа последовательно вычитается максимально допустимая степень требуемого основания, умноженная на максимально возможный коэффициент, меньший основания. Далее такая же процедура производится многократно с остатками от максимальной степени до нулевой. Полученные коэффициенты, записанные в порядке их получения, являются значащими цифрами числа в новой системе. Продемонстрируем метод на примере перевода числа 114(10) в 2-ую систему счисления:
114 – 1 26 = 114 – 64 = 50,
50 – 1 25 = 50 – 32 = 18,
18 – 1 24 = 18 – 16 = 2,
2 – 0 23 = 2 – 0 = 2,
2 – 0 22 = 2 – 0 = 2,
2 – 1 21 = 2 – 2 = 0,
0 – 0 20 = 0 – 1 = - 1.
Запишем результат:114(10) = 1110010(2).
Для закрепления метода вычитания степеней переведём это же число 114(10) в 8-ую систему счисления:
114 – 1 82 = 114 – 64 = 50,
50 – 6 81 = 50 – 48 = 2,
2 – 2 80=2 – 2 = 0.
Получили результат: 114(10)=162(8).