← Все вопросы

как перевести из двоичной в десятичную и обратно, вечно путаюсь перед егэ

Задан 31 месяц назад1.1к просмотров2 ответа
6

Скоро ЕГЭ по информатике, а я каждый раз туплю с переводами. Дано число 1011 в двоичной — надо в десятичную. И наоборот, число 13 в десятичной — перевести в двоичную.

Репетитор показывал какие-то степени двойки, но я уже забыл порядок. Пробую так:

1011 -> 1+0+1+1 = 3 ???

Это явно бред, у меня всё время разные ответы выходят. Можете на этих двух числах прям по шагам показать, чтоб я наконец понял?

2 ответа

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

Смотри, переводим 1011 из двоичной в десятичную — раскладываем по степеням двойки. Главное правило: считаем разряды СПРАВА налево, начиная с нулевого.

Подписываем над каждой цифрой её степень двойки (справа 2^0, потом 2^1, 2^2, 2^3):

цифры:    1    0    1    1
степень:  2^3  2^2  2^1  2^0
значение: 8    4    2    1

Теперь складываем только там, где стоит единица:

8·1 + 4·0 + 2·1 + 1·1 = 8 + 0 + 2 + 1 = 11.

То есть 1011 в двоичной = 11 в десятичной.

Теперь обратно, 13 → в двоичную. Делим на 2 и записываем остатки:

13 : 2 = 6, остаток 1
6  : 2 = 3, остаток 0
3  : 2 = 1, остаток 1
1  : 2 = 0, остаток 1

Остатки читаем СНИЗУ ВВЕРХ: 1101. Проверим: 8+4+0+1 = 13, сходится.

Приём чтоб не путаться: степени двойки запиши заранее в столбик 1, 2, 4, 8, 16, 32, 64, 128 — и при переводе просто подставляй. А при делении главное не забыть, что остатки читаются с конца (снизу вверх).

Проверить себя на питоне можно так:

print(int('1011', 2))   # 11
print(bin(13))          # 0b1101

Но на экзамене калькулятора нет, так что тренируй руками.

4

Типичная ошибка как у тебя — складывать сами цифры. Двоичная это не сумма цифр, а сумма степеней двойки.

Быстрый лайфхак для обратного перевода: вычитай самую большую степень двойки, которая помещается. 13: помещается 8 (ставим 1, осталось 5), помещается 4 (1, осталось 1), 2 не помещается (0), 1 помещается (1) → 1101. Тот же ответ, иногда быстрее деления.

Ваш ответ

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