Разделяй и переводи.
А. Алешин
При обработке данных и вычислениях одной из наиболее часто встречающихся задач является перевод чисел из одной системы счисления в другую. Рассмотрим простейшие алгоритмы перевода положительных чисел из двоичной системы в восьмеричную и шестнадцатеричную.
Пусть требуется перевести двоичное число 101011011001101101111001010110010112
в восьмеричную систему счисления. Для этого следует разбить это двоичное число на триады, начиная
с младшего бита (МБ). Получим:
Если старшая триада не заполнена до конца, следует дописать в ее старшие разряды нули, как в
нашем случае. После этого необходимо заменить двоичные триады, начиная с младшей, на числа, равные им в восьмеричной
системе:
Таким образом,
Аналогично поступаем при переводе чисел из двоичной системы счисления в шестнадцатеричную, но
разбиение двоичного числа производим на тетрады. Для примера будем использовать то же двоичное число, что и при
переводе в восьмеричную систему счисления:
Заменяя двоичные тетрады на их шестнадцатеричные значения, получим искомое шестнадцатеричное
число:
Очевидно, что разбиения на триады и тетрады связаны со степенями двойки (для триады, при переводе в
восьмеричную систему, 23, а для тетрады, при переводе в шестнадцатеричную,
24)). Сравнительные таблицы соответствия чисел в различных системах счисления можно найти в
Приложении.