Перейти к содержимому

Ложь о числах с плавающей запятой, которую каждый программист узнает слишком поздно

NCOT Technology

0:00 / 0:00

Ложь о числах с плавающей запятой, которую каждый программист узнает слишком поздно

4 748 просмотров · 3 месяца назад
NCOT Technology
31,2 тыс. подписчиков
4 748 просмотров · 3 месяца назад
Почему Python выдает ошибку, что 0,1 + 0,2 = 0,30000000000000004? Ответ кроется в стандарте IEEE 754 — стандарте вычислений с плавающей запятой, встроенном в каждый процессор на планете. В этом видео мы заглянем под капот: от пределов арифметики с фиксированной запятой, через научную запись в двоичном формате, до ручного преобразования числа 3,14 в его 32-битное представление IEEE 754 — и докажем это на языке C с помощью алгоритма объединения, который считывает необработанные биты непосредственно из памяти. Мы также рассмотрим, что происходит на границах: деление на ноль приводит к бесконечности вместо сбоя. Деление нуля на ноль дает NaN — Not a Number (не число). IEEE 754 определяет не только «счастливый путь», но и все «странные» пути. ━━━━━━━━━━━━━━━━━━━━━━━━ 📌 ГЛАВЫ ━━━━━━━━━━━━━━━━━━━━━━━━━ 0:00 Проблема 0,1 + 0,2 1:01 Арифметика с фиксированной запятой 5:57 Научная нотация и рождение чисел с плавающей запятой 6:48 Стандарт IEEE 754 7:01 Преобразование 3,14 в 32-битное число с плавающей запятой 11:12 Доказательство на языке C 13:24 Крайние случаи: бесконечность и NaN 15:20 Почему стандарт IEEE 754 изменил всё ━━━━━━━━━━━━━━━━━━━━━━━━━ 🔗 ССЫЛКИ И РЕСУРСЫ ━━━━━━━━━━━━━━━━━━━━━━━━━ ☕ Поддержите канал на Patreon (+ 24-часовой ранний доступ, без рекламы):   / ncot_tech   Научный калькулятор - Thirunavukkarasye-Raveendran, CC BY 4.0 https://creativecommons.org/licenses/..., via Wikimedia Commons Снимок кристалла Intel 486 DX2 — этот файл был получен из: Intel 80486 DX2 die.JPG by Pauli Rautakorpi CC BY 3.0 Музыка: Karl Casey @ White Bat Audio