Что произойдёт, когда на калькуляторе 1950-х годов поделить на ноль

В сети завирусился ролик с «агонией» винтажного устройства

2 мин.
Что произойдёт, когда на калькуляторе 1950-х годов поделить на ноль

Деление на ноль — одна из самых известных ошибок в информатике, способная «уронить» даже современное приложение. Но, как показывает практика, этот математический парадокс сеял хаос задолго до начала цифровой эры. Ярким примером стало видео, опубликованное энтузиастом науки и математики Виксхалом (Vixhal) в соцсети X. На кадрах запечатлено, как механический калькулятор 1950-х годов буквально сходит с ума, пытаясь выполнить невозможную операцию.​

В отличие от современных компьютеров, которые выдают вежливое уведомление об ошибке, механический предок реагирует на команду «разделить на ноль» неконтролируемым вращением шестерёнок. Устройство входит в бесконечный цикл вычислений, издавая надрывный шум, словно умоляя: «Смажь меня или выключи немедленно!».

Видео в Telegram: https://t.me/applespbevent_video/256

В середине прошлого века у вычислительных машин не было встроенных протоколов безопасности. Попытка деления на ноль не вызывала остановку программы, а запускала механизм, который пытался вычесть ноль из делимого бесконечное количество раз. Это приводило к физическому износу и «зависанию» в самом прямом смысле слова.

С приходом эры микропроцессоров ситуация начала меняться, но не сразу. Легендарный чип Intel 4004, выпущенный в 1971 году и ставший «сердцем» первого коммерческого калькулятора Busicom 141-PF, не имел аппаратной защиты от деления на ноль. Более того, его ограниченный набор команд даже не включал нативную инструкцию деления.

Однако инженеры Busicom предусмотрели это на уровне прошивки. Калькулятор определял попытку деления на ноль программно и выводил сообщение об ошибке, спасая устройство от бесконечного цикла. Это было элегантным решением для того времени, предотвращавшим сбой системы.

Настоящий прорыв в обработке ошибок произошел в 1978 году с выходом процессора Intel 8086 — прародителя архитектуры x86. Этот чип впервые получил нативную инструкцию DIV и механизм аппаратных прерываний. Если процессор обнаруживал нулевой делитель, он автоматически генерировал исключение типа «DE» (Divide Error), передавая управление обработчику ошибок операционной системы, вместо того чтобы впадать в ступор.

Следующим важным шагом стало принятие стандарта IEEE 754 в 1985 году, который регламентировал операции с плавающей запятой. Благодаря ему, деление на ноль в современных системах часто возвращает специальные значения — «Бесконечность» (Infinity) или «Нечисло» (NaN; Not a Number), что позволяет программе продолжить работу, а не аварийно завершаться. Аппаратная поддержка этого стандарта появилась в математическом сопроцессоре Intel 80387.

Казалось бы, к 2025 году проблема должна быть полностью решена. Современные ядра операционных систем перехватывают исключения на лету. Однако история совершила ироничный виток.

Даже сегодня, спустя десятилетия эволюции, пользователи сталкиваются с призраками прошлого. Игроки в World of Warcraft на форумах Reddit и Blizzard массово жалуются на вылеты игры с ошибкой INT_DIVIDE_BY_ZERO. Проблема затрагивает владельцев процессоров Intel поколений Raptor Lake и Raptor Lake Refresh. Несмотря на всю мощь современного «железа», некорректная обработка инструкций или нестабильность работы кристаллов вновь приводят к сбоям, напоминающим о старых добрых механических временах.

Так что, если ваша любимая игра внезапно «вылетит» на рабочий стол в 2025 году, не спешите ругать разработчиков. Вспомните тот старый калькулятор из 1950-х, который в ответ на неразрешимую задачу просто крутил шестерёнками до полного изнеможения.


Ещё по теме:

Мы в Telegram, на Дзен, в Google News и YouTube



ePN