← головнаПрограмування

Що таке integer overflow?

Integer overflow — це переповнення цілого числа, коли значення перевищує межу типу змінної. Для 32-бітного signed int максимум — 2,147,483,647 (0x7FFFFFFF). Додавання 1 призводить до переходу в мінімальне від’ємне зна...

ЗмістНатисність на посилання, щоб перейти до потрібного місця
Ви маєте є лічильник, який може рахувати лише до певного числа. Наприклад, кишеньковий калькулятор, який показує максимум 999. Якщо спробуєте додати 1 до 999, він не зможе показати 1000 - цифри просто "переповняться" (overflow) і калькулятор покаже щось зовсім інше, наприклад 000.
У програмуванні такий ефект називають integer overflow (переповнення цілого числа).
Це відбувається, коли число стає більшим за максимальне значення, яке може зберегти обраний тип змінної.
Наприклад, якщо змінна int може зберігати числа до 2,147,483,647, то додавання 1 зробить її значення… негативним!

Чому 2,147,483,647 - це "стеля" для 32-бітного числа

У комп’ютері числа зберігаються в бінарному вигляді (тобто як послідовність нулів і одиниць).
"32-бітний" означає, що для зберігання числа виділяється 32 комірки, і в кожній може бути або 0, або 1.
Але якщо число signed (зі знаком), то одна з цих комірок зарезервована для знаку:
  • 0 у першому біті — число додатне,
  • 1 у першому біті — число від’ємне.
Тобто замість 32 біт для величини числа залишається лише 31 біт.
Максимальне значення
Коли всі 31 біти (крім знакового) заповнені одиницями, ми отримуємо найбільше можливе додатне число:
1111111111111111111111111111111 (31 одиниця)
У десятковій системі це якраз 2,147,483,647.
У шістнадцятковій (hex) формі це записується як 0x7FFFFFFF:
  • 7 — це бінарно 0111 (тобто знак 0 + три одиниці),
  • F — це бінарно 1111 (чотири одиниці),
  • і так далі до кінця.
Через це в програмах іноді трапляються дуже дивні помилки, а в історії навіть були серйозні аварії через переповнення. Трапляються навіть меми через помилку integer overflow, але це не точно.

🔥 Більше дописів

Всі публікації
Що таке вайб-кодинг?
25 лип. '25, 21:51

Що таке вайб-кодинг?

Вайб-кодинг — це інтуїтивне програмування в тандемі з AI: без строгих правил, з музикою, натхненн...

Що таке HAR file (HTTP Archive)?
Програмування25 серп. '25, 18:23

Що таке HAR file (HTTP Archive)?

HAR file (HTTP Archive) — це формат .har, що зберігає журнал роботи браузера з мережею. Він місти...

Що таке NP-складність?
Програмування16 вер. '25, 19:31

Що таке NP-складність?

NP-складність – це клас задач, де знайти рішення надзвичайно важко, але перевірити готову відпові...