Как я могу преобразовать число из базы 8 в базу 10? - PullRequest
3 голосов
/ 12 февраля 2010

Я знаю 75 (base8) = 61 (base10), но я не могу легко найти формулу для этого. Как конвертировать из базы 8 в базу 10?

Ответы [ 6 ]

6 голосов
/ 12 февраля 2010

0 * 8 5 + 0 * 8 4 + 0 * 8 3 + 0 * 8 2 + 7 * 8 1 + 5 * 8 0 = 61

4 голосов
/ 12 февраля 2010

Чтобы преобразовать любую базу в базу 10, просто сделайте следующее:

Для каждой цифры в другой базе умножьте ее на базу и цифру. Например:

75 (base 8) = 7*8^1 + 5*8^0 = 61 

Работает для любой базы ... двоичный, шестнадцатеричный, вы называете это просто сделать это, и он преобразуется в базу 10.

2 голосов
/ 12 февраля 2010

Формула: 1 8 = 1 10 и 10 8 = 8 10 . Все остальное можно извлечь из этого.

Если у вас есть последовательность из 8 базовых цифр, которые вы хотите преобразовать в базовые 10, обработайте их слева направо, сохраняя итоговое значение, которое вы инициализируете, равным нулю. Для каждой цифры x установите сумму 8 * total + x. После обработки последней цифры итоговое значение будет равно значению десяти базовых последовательностей.

1 голос
/ 12 февраля 2010

75 в базе 8 = 5 * 8 ^ 0 + 7 * 8 ^ 1 = 5 + 56 = 61

Как правило, для преобразования числа a_1a_2a_3 ... a_n из базы k в базу 10 используйте формулу:

a_n * k ^ 0 + a_ (n-1) * k ^ 1 + ... + a_1 * k ^ (n-1).

0 голосов
/ 12 февраля 2010

учитывая, что это сайт программирования:

int oct_to_dec = 075;
printf("%d",oct_to_dec);
0 голосов
/ 12 февраля 2010

137461 (база 8) = 1 х 8 ^ 0 + 6 х 8 ^ 1 + 4 х 8 ^ 2 + 7 х 8 ^ 3 + 3 х 8 ^ 4 + 1 х 8 ^ 5

...