При обработке данных и вычислениях одной из наиболее часто встречающихся задач является перевод чисел из одной системы счисления в другую. Рассмотрим простейшие алгоритмы перевода положительных чисел из двоичной системы в восьмеричную и шестнадцатеричную.
Пусть требуется перевести двоичное число 101011011001101101111001010110010112 в восьмеричную систему счисления. Для этого следует разбить это двоичное число на триады, начиная с младшего бита (МБ). Получим:
010 101 101 100 110 110 111 100 101 011 001 0112
Если старшая триада не заполнена до конца, следует дописать в ее старшие разряды нули. После этого необходимо заменить двоичные триады, начиная с младшей, на числа, равные им в восьмеричной системе:
2 5 5 4 6 6 7 4 5 3 1 38
Таким образом,
101011011001101101111001010110010112 = 2554667453138
Аналогично поступаем при переводе чисел из двоичной системы счисления в шестнадцатеричную, но разбиение двоичного числа производим на тетрады. Для примера будем использовать то же двоичное число, что и при переводе в восьмеричную систему счисления:
|
|
0101 0110 1100 1101 1011 1100 1010 1100 10112
Заменяя двоичные тетрады на их шестнадцатеричные значения, получим искомое шестнадцатеричное число:
101011011001101101111001010110010112 = 56CDBCACB16
Очевидно, что разбиения на триады и тетрады связаны со степенями двойки (для триады, при переводе в восьмеричную систему, 23, а для тетрады, при переводе в шестнадцатеричную, 24). Сравнительные таблицы соответствия чисел в различных системах счисления можно найти в Приложении.