степени двойки наизусть и как перевести дробное число в двоичную
Два вопроса по системам счисления. Первое — реально ли быстро переводить через степени двойки 1,2,4,8,16,32... и стоит ли их зубрить? А то я каждый раз заново вычисляю и теряю время.
И второе, чего вообще нигде нормально не объяснили: как перевести ДРОБНОЕ число в двоичную, например 0.625 или 5.25? С целой частью я разобрался, а что делать с тем, что после запятой — без понятия.
2 ответа
По первому — да, степени двойки реально стоит знать наизусть, это экономит кучу времени и снимает ошибки. Запомни хотя бы до 1024:
2^0=1, 2^1=2, 2^2=4, 2^3=8, 2^4=16, 2^5=32,
2^6=64, 2^7=128, 2^8=256, 2^9=512, 2^10=1024
Тогда любой перевод в/из двоичной — просто складывание этих чисел.
Теперь главное — дробная часть. Целую и дробную части переводят ОТДЕЛЬНО.
Целую часть — делением на 2 с остатками (как обычно). Дробную часть — наоборот, УМНОЖЕНИЕМ на 2, и выписываем целые части результата сверху вниз.
Переведём 0.625:
0.625 × 2 = 1.25 -> целая часть 1, дальше берём 0.25
0.25 × 2 = 0.5 -> целая часть 0, дальше 0.5
0.5 × 2 = 1.0 -> целая часть 1, дальше 0 -> стоп
Целые части читаем СВЕРХУ ВНИЗ: 101. Значит 0.625 = 0.101 в двоичной.
Проверка: 0.101 = 1/2 + 0/4 + 1/8 = 0.5 + 0.125 = 0.625. Верно.
Теперь 5.25 целиком:
- целая часть 5 → делим на 2: 5=
101. - дробная 0.25:
0.25×2=0.5(0),0.5×2=1.0(1, стоп) →0.01. - склеиваем: 101.01. Проверка: 101.01 = 4+1 + 1/4 = 5.25. Сходится.
Запомни направления, тут все путаются:
- целая часть — ДЕЛИМ на 2, остатки читаем СНИЗУ вверх;
- дробная часть — УМНОЖАЕМ на 2, целые части читаем СВЕРХУ вниз.
Важный нюанс: не каждая десятичная дробь переводится точно. Например 0.1 в двоичной — бесконечная периодическая дробь. В таком задании обычно просят округлить до N знаков после запятой — умножай ровно нужное число раз и останавливайся.
Дома проверить дробь можно так:
print(0.5 + 0.125) # 0.625 -> это и есть 0.101 двоичное
Лайфхак для дробной части: если знаменатель десятичной дроби — степень двойки (2, 4, 8, 16...), перевод всегда конечный и быстрый. 0.625 = 5/8, а 8 = 2³ → ровно три знака после запятой. 0.25 = 1/4 → два знака. Прикинул знаменатель — сразу понял, на сколько знаков рассчитывать.
Главная ошибка — переводить дробную часть делением, как целую. Нет: дробную УМНОЖАЕМ на 2.