Дроби, проценты и двоичный код: одно число в разных записях
Дроби, проценты и двоичный код: одно число в разных записях
3/4, 0,75 и 75% — это одно и то же число, записанное тремя способами.
255 и FF — тоже одно и то же. Записей у числа много, и почти вся школьная
арифметика, которая потом всплывает во взрослых задачах, сводится к переводу
между ними без потери точности.
Дробь, десятичная запись и процент
Переходы простые, и их стоит держать в голове целиком.
Дробь в десятичную запись — разделить числитель на знаменатель: 3 ÷ 4 = 0,75. Десятичную в процент — умножить на 100: 0,75 → 75%. Процент в дробь — положить на 100 и сократить: 75/100 = 3/4.
Главная ловушка — деление на 100 и умножение на 100 в неверную сторону. Помогает проверка здравым смыслом: процент всегда в сто раз больше своей десятичной записи, и если получилось наоборот, знак перепутан. Пять типовых расчётов с процентами разобраны отдельно — как посчитать процент.
Почему обыкновенные дроби не отмирают
Казалось бы, зачем 7/8, если есть 0,875. Затем, что не всякая дробь
записывается десятичной точно. 1/3 — это 0,333… без конца, и любая запись
будет округлением. В расчёте, где такие числа складываются и умножаются,
округления накапливаются, а обыкновенная дробь остаётся точной до последнего
шага.
Правила арифметики при этом неудобны для устного счёта: складывать и вычитать
можно только при общем знаменателе, умножение идёт «числитель на числитель,
знаменатель на знаменатель», а деление — умножением на перевёрнутую дробь.
Калькулятор дробей делает все четыре действия и
сразу приводит результат к простейшему виду, чтобы 6/8 не тащилось дальше
вместо 3/4.
Сокращение — не косметика. Пока дробь не сокращена, в ней лишний общий множитель, и на следующем шаге числа растут быстрее, чем нужно.
Пропорция: та же дробь, только с неизвестным
Когда две дроби равны друг другу, а одно из четырёх чисел неизвестно, получается
пропорция: a/b = c/d. Решается правилом креста — произведение крайних членов
равно произведению средних. Это тот же перевод между записями, просто в одну
сторону неизвестно. Подробный разбор —
как решить пропорцию.
Системы счисления: та же идея, другое основание
Привычная десятичная запись означает, что каждый разряд в десять раз весомее
соседа справа: 364 — это 3×100 + 6×10 + 4×1.
Поменяйте десятку на двойку — получится двоичная система, где разряды весят 1,
2, 4, 8, 16 и так далее. Число 1101 в ней означает 8 + 4 + 0 + 1 = 13.
Поменяйте на шестнадцать — шестнадцатеричная, где разрядов не хватает цифр, и
после 9 идут буквы: A это 10, B — 11, и так до F — 15. Отсюда FF = 15×16 + 15
= 255.
Двоичная система нужна потому, что в ней всего два состояния, а их легко
представить физически — есть ток или нет. Шестнадцатеричная — это компактная
запись двоичной: каждая шестнадцатеричная цифра ровно соответствует четырём
двоичным разрядам, и FF короче, чем 11111111, при том же смысле. Поэтому в
ней пишут цвета (#FF8800) и адреса памяти.
Перевод между системами показывает разбор по разрядам, а не только итог — по нему видно, откуда взялась каждая цифра.
Почему 0,1 в двоичной не записывается точно
Тот же сюжет, что с 1/3 в десятичной, только в другую сторону.
В десятичной системе точно записываются дроби, знаменатель которых состоит из
двоек и пятёрок: 1/2, 1/4, 1/5, 1/20. В двоичной — только из двоек:
1/2, 1/4, 1/8. А 0,1 — это 1/10, и в знаменателе есть пятёрка, которой
в двоичной системе взяться неоткуда. Запись получается бесконечной
периодической, и компьютер её округляет.
Отсюда знаменитое 0.1 + 0.2 === 0.30000000000000004 почти во всех языках
программирования. Это не ошибка языка и не баг процессора: это то же самое, что
записать треть десятичной дробью и удивиться, что три трети дали 0,999….
Практический вывод один — деньги не хранят в дробных числах с плавающей точкой,
их считают в копейках целыми.
Коротко
3/4=0,75=75%— одно число; процент в сто раз больше десятичной записи.- Обыкновенная дробь точна там, где десятичная округляет:
1/3десятичной не записывается. - Сокращать нужно сразу, иначе лишний множитель тащится в следующие шаги.
- Разряд в системе счисления весит столько, каково основание: 10, 2 или 16.
- Буквы в шестнадцатеричной — просто цифры после девятки, A это 10, F это 15.
0,1в двоичной бесконечна, потому что в её знаменателе пятёрка. Деньги считают целыми копейками.

