← Все вопросы

Как быстро перевести число из восьмеричной системы сразу в шестнадцатеричную?

Задан 33 месяца назад211 просмотров2 ответа
5

На ЕГЭ попалась задача: перевести число из восьмеричной системы прямо в шестнадцатеричную. Можно ли как-то напрямую, или обязательно сначала в десятичную, а потом в 16-ричную? Это же долго.

2 ответа

10
✓ Принятый ответ — помог автору

Напрямую между 8 и 16 удобной связи нет (8 = 2³, 16 = 2⁴, разные «размеры групп»). Поэтому идут через двоичную — это быстрее, чем через десятичную.

План: восьмеричное → разбиваешь каждую цифру на триаду (3 бита) → склеиваешь все биты в одну строку → перегруппировываешь биты на тетрады (4 бита) справа → каждую тетраду в hex.

Пример, 257₈:

2=010  5=101  7=111   →  010101111
разбиваем справа по 4: 0 1010 1111
          →  0=0(=один бит слева)  1010=A  1111=F
итог: AF... 

Главная ловушка — при перегруппировке группировать с правого конца, а левую неполную группу дополнить нулями. Через десятичную тоже можно, но там два деления в столбик — дольше и ошибок больше.

3

Совет: всегда сначала собери ВСЕ биты в одну непрерывную строку, и только потом режь на тетрады. Если резать «по ходу», легко потерять или добавить лишний бит на стыке цифр.

Ваш ответ

Войдите, чтобы ответить на вопрос.