@historydev
Информационный наркоман

Как записать это выражение?

1102 = (1*22 + 1*21 + 0*20)10

Мне на ум приходит только такой вариант:
1*(2 ** 2) + 1*(2**1) + 0*(2 ** 0)

Так-же слегка непонятно про нижние индексы.
Выражение переводит двоичное число в десятичное, если логически подумать, нижний индекс у 110 (2) означает двоичную систему, а у правой части (10) десятичную.
Но мне почему-то кажется что это декоративная штука, я скорее всего ошибаюсь.
  • Вопрос задан
  • 194 просмотра
Решения вопроса 2
wataru
@wataru Куратор тега Математика
Разработчик на С++, экс-олимпиадник.
Да, нижние индексы - это обозначение системы счисления. Так, 110 в двочиной - это 6 в десятичной, или вот то разложение по степеням двойки.
Ответ написан
@Mercury13
Программист на «си с крестами» и не только
Добавлю от себя: десятичная система счисления справа не имеет смысла: нет такого понятия, как десятичный плюс. Слева — двоичная система счисления, справа — РОДНАЯ, в которой мы проводим расчёты, будь это двоичная, десятичная, фибоначчиева или просто чёрточки на песке.

Перед нами самое обычное определение позиционной системы счисления. Слева индекс имеет смысл (мы указываем основание), справа не имеет (мы работаем в «родной» для нас системе).

UPD. Мы, конечно, можем написать: (123 + 456)10, что значит: все числа в скобках в десятичной системе. Только в вашем примере в скобках нет ни многозначных чисел, ни сверхдесятичных систем счисления (B16=11), чтобы это имело какой-то смысл. Цифра два — она и в Африке два: мы договорились, что она значит || независимо от системы счисления. Если, конечно, не делать из неё многозначные числа.

Да, на языке программирования вы записали правильно, хотя чаще на компьютерах используется схема Горнера:

((1) * 2 + 1) * 2 + 0

Во многих языках есть запись 0b110.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы