Другие языки программирования и технологии

Как переводить из 16-ричной системы счисления в восьмеричную?

Сначала в десятичную, затем из десятичной в восьмеричную, или есть какой-то более рациональный способ?
Aivar Zunis
Aivar Zunis
140
если надо просто перевести для себя, то как уже написали калькулятором

а если надо преподу показать как переводил, то через двоичную рациональнее чем через десятичную

ничего вычислять не надо - только заменять буковка на циферки и циферки на другие циферки.

сначало из 16-чной в двоичную заменой символов на тетрады:
0 -> 0000
1 -> 0001
2 -> 0010
3 -> 0011
4 -> 0100
5 -> 0101
6 -> 0110
7 -> 0111
8 -> 1000
9 -> 1001
A -> 1010
B -> 1011
C -> 1100
D -> 1101
E -> 1110
F -> 1111
например 3D5A06 -> 0011.1101.0101.1010.0000.0110 -> 001111010101101000000110
патом надо разбить справа налево на триады. если слева получится меньше трех двоичных цифр, то приписать слева нули:
001.111.010.101.101.000.000.110 теперь эти триады надо заменить на восьмеричные цифры
000 -> 0
001 -> 1
010 -> 2
011 -> 3
100 -> 4
101 -> 5
110 -> 6
111 -> 7
001.111.010.101.101.000.000.110 -> 17255006
ВСЕ!
АИ
Альберт Ильясов
20 328
Лучший ответ
Более рациональный способ есть, это воспользоваться онлайн конвертером , в котором достаточно просто ввести число в какой либо из систем счисления и появляются результаты написания данного числа в других системах счисления .
А если интересен алгоритм самого перевода для освоения самостоятельно, то он описан здесь .
Роман Есаков
Роман Есаков
60 680
сначала переводят в двоичную, а потом в восьмеричную или любую другую
Все верно. Но есть еще инжинерные калькуляторы которые перебодят данные величины одну в другую сразу. На компе они тоже кстати есть)))))))) 0
согласен с фениксом. так что в ручную больше не надо переводить:);)

Похожие вопросы