All original content is created in Ukrainian. Not all content has been translated yet. Some posts may only be available in Ukrainian.Learn more

What is integer overflow?

Post cover: What is integer overflow?
Table of contentsClick link to navigate to the desired location
This content has been automatically translated from Ukrainian.
You have a counter that can only count up to a certain number. For example, a pocket calculator that shows a maximum of 999. If you try to add 1 to 999, it will not be able to display 1000 - the digits will simply "overflow" and the calculator will show something completely different, like 000.
In programming, this effect is called integer overflow.
It occurs when a number exceeds the maximum value that the chosen variable type can hold.
For example, if an int variable can hold numbers up to 2,147,483,647, then adding 1 will make its value… negative!

Why 2,147,483,647 is the "ceiling" for a 32-bit number

In a computer, numbers are stored in binary form (that is, as a sequence of zeros and ones).
"32-bit" means that 32 cells are allocated for storing a number, and each can be either 0 or 1.
But if the number is signed, then one of these cells is reserved for the sign:
  • 0 in the first bit — the number is positive,
  • 1 in the first bit — the number is negative.
So instead of 32 bits for the magnitude of the number, only 31 bits remain.
Maximum value
When all 31 bits (except the sign) are filled with ones, we get the largest possible positive number:
1111111111111111111111111111111 (31 ones)
In decimal, this is exactly 2,147,483,647.
In hexadecimal (hex) form, it is written as 0x7FFFFFFF:
  • 7 is binary 0111 (that is, sign 0 + three ones),
  • F is binary 1111 (four ones),
  • and so on to the end.
Because of this, very strange bugs sometimes occur in programs, and there have even been serious accidents in history due to overflow. There are even memes about the integer overflow error, but that's not certain.

This post doesn't have any additions from the author yet.

What is the HEIC format and why simply renaming it to .jpg is a bad idea
15 Jun 18:17

What is the HEIC format and why simply renaming it to .jpg is a bad idea

meme code
meme code@memecode
Why is the choice of CMS important when developing a website?
29 Jun 12:34

Why is the choice of CMS important when developing a website?

meme code
meme code@memecode
Error 403 on the website: what it means and how to fix it
24 Jul 23:50

Error 403 on the website: what it means and how to fix it

meme code
meme code@memecode
What is vibe coding?
25 Jul 21:51

What is vibe coding?

meme code
meme code@memecode
What is combinatorial explosion?
28 Jul 11:50

What is combinatorial explosion?

meme code
meme code@memecode
What is a brain stack?
28 Jul 19:37

What is a brain stack?

meme code
meme code@memecode
What is a HAR file (HTTP Archive)?
25 Aug 18:23

What is a HAR file (HTTP Archive)?

meme code
meme code@memecode
What is Bubble Sort (algorithm explanation)?
16 Sep 18:42

What is Bubble Sort (algorithm explanation)?

meme code
meme code@memecode
What is exponential growth?
16 Sep 18:57

What is exponential growth?

meme code
meme code@memecode
What is factorial complexity?
16 Sep 19:03

What is factorial complexity?

meme code
meme code@memecode
What is NP-complexity?
16 Sep 19:31

What is NP-complexity?

meme code
meme code@memecode
Offset vs Cursor Pagination in Rails: what to choose and why
24 Sep 15:22

Offset vs Cursor Pagination in Rails: what to choose and why

meme code
meme code@memecode