и посмотреть медиа
Код на салфетке - Python кодинг
и посмотреть медиа
Канал о программировании на Python и других языках. Простые объяснения и коды.
Канал о программировании на Python и других языках. Простые объяснения и коды.
AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.
Ресурс для интересующихся программированием. Фокус на Python, но охватывает и другие темы. Простые примеры и разборы.
Знаете ли вы, что переполнение 16-битного числа уничтожило ракету Ariane 5? 4 июня 1996 года Ariane 5 Flight 501 поднялась в воздух и через 37 секунд взорвалась. Причина – навигационный код, который без изменений скопировали с Ariane 4. Там он работал годами, а на Ariane 5 его не хватило и на минуту. Система ориентации конвертировала 64-битное число с плавающей точкой в int16. В Ariane 4 это значение физически не выходило за пределы диапазона – проверки не писали, потому что казалось, что незачем. Ariane 5 летела по другой траектории с большей горизонтальной скоростью – значение вышло за пределы int16: import ctypes value = 32767 print(ctypes.c_int16(value).value) # 32767 — максимум для signed int16 value = 32768 print(ctypes.c_int16(value).value) # -32768 — за пределами диапазона int16 хранит числа от -32768 до 32767. В Python int переполниться не может – это bignum, он просто растет: value = 32767 print(value + 1) # 32768 — Python не знает про int16 print(type(value)) # # Чтобы увидеть ограничения int16, нужно явно попросить: import ctypes print(ctypes.c_int16(32768).value) # -32768 Навигационный код был написан на языке Ada – в нем конверсия float в int16 бросает исключение, когда число выходит за диапазон. Исключение не обработали: навигационная система SRI передала диагностический дамп по шине данных, а бортовой компьютер интерпретировал его как валидные данные полета и начал править курс по мусорным координатам – ракета попыталась скорректировать положение и разрушилась под нагрузкой. Резервная SRI не помогла – там стоял идентичный код. Она отказала почти сразу по той же причине. В официальном отчете комиссии прямо написано: код считался безопасным из-за ограничений полетного профиля Ariane 4. Никто не спросил, будут ли те же ограничения справедливы для новой ракеты. На борту было четыре научных спутника Cluster стоимостью около $370 млн – они должны были изучать магнитосферу Земли. Cluster в итоге запустили повторно в 2000 году, на Союзах. Python не воспроизведет этот баг случайно – int здесь бесконечен по умолчанию. Но ctypes, numpy, struct – любой из них вернет C-поведение, если попросить. Тип данных – это не просто размер памяти, это контракт о том, что произойдет на границе. Код на салфетке x Кусочки кода
Открыть канал и посмотреть медиаТолько зарегистрированные пользователи могут делиться своим мнением.
Станьте первым, кто поделится своим впечатлением об этом ресурсе!