Конвертация между системами нумерации - PullRequest
2 голосов
/ 28 августа 2010

Я пытаюсь понять причину правила при конвертации. Я уверен, что должно быть простое объяснение, но я не могу обернуться вокруг него. Цени любую помощь!

Преобразование из base10 в любую другую базу выполняется следующим образом:

число / требуемая база = число + остаток

Вы делаете это до числа = 0.

Но после всех вычислений вы должны перевернуть все остатки вверх дном. Я не понимаю почему.

Например: от base10 до base2

11 / 2 = 5 + 1
5 / 2  = 2 + 1
2 / 2  = 1 + 0
1 / 2  = 0 + 1

Почему правильный ответ: 1011, а не 1101?

Я знаю, что это немного мелочно, но это действительно помогло бы мне вспомнить лучше, если бы я мог это понять.

Ответы [ 2 ]

7 голосов
/ 28 августа 2010

Подумайте о том же в десятичной системе, даже если в этом случае не имеет особого смысла делать математику:)

1234 / 10 = 123 | 4
123 / 10  = 12  | 3
12 / 10   = 1   | 2
1 / 10    = 0   | 1

Каждый раз, когда вы делите, вы отбрасываете наименее значимую цифру, поэтому первым результатом является наименее значимый результат - цифра справа.

1 голос
/ 28 августа 2010

Потому что 11 =

1 * 2 ^ 3 + 0 * 2 ^ 2 + 1 * 2 ^ 1 + 1 * 2 ^ 0 (1011)

, а не

1 * 2 ^ 3 + 1 * 2 ^ 2 + 0 * 2 ^ 1 + 1 * 2 ^ 0 (1101)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...