Перевод чисел из шестнадцатеричной системы в двоичную и восьмеричную

Алгоритм перевода чисел из шестнадцатеричной системы счисления двоичную крайне прост. Необходимо только заменить каждую цифру шестнадцатеричного числа ее эквивалентом в двоичной системе счисления (в случае положительных чисел). Как и в предыдущих параграфах, удобно и полезно воспользоваться таблицей соответствия, приведенной в Приложении. Отметим только, что каждое шестнадцатеричное число следует заменять двоичным, дополняя его до 4 разрядов (в сторону старших разрядов).

Пусть требуется перевести шестнадцатеричное число F116 в двоичное число. Воспользовавшись Таблицей соответствия из Приложения, получим:

F116 = 111100012,

поскольку F16 = 11112, 116 = 00012. Этот пример иллюстирует тот факт, что следует дополнять младшие разряды до 4 разряда в двоичном числе. Естественно, дополнять старший разряд двоичного числа до 4 старших битов нулями не имеет смысла, другими словами пишут

1F16 = 111112, а не 000111112

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

1F16 = 111112 = 011 1112 = 378

F116 = 111100012 = 011 110 0012 = 3618

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

 

Сводная таблица переводов целых чисел

Рассмотрим только те системы счисления, которые применяются в компьютерах — десятичную, двоичную, восьмеричную и шестнадцатеричную. Для определенности возьмем произвольное десятичное число, например 46, и для него выполним все возможные последовательные переводы из одной системы счисления в другую. Порядок переводов определим в соответствии с рисунком:

На этом рисунке использованы следующие обозначения:

 в кружках записаны основания систем счисления;

 стрелки указывают направление перевода;

 номер рядом со стрелкой означает порядковый номер соответствующего примера в сводной таблице: