Арифметические операции в восьмеричной и шестнадцатеричной системе счисления

Хотя компьютер работает в 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).


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



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