Skip to Content
Navigation:

A stick figure smiling

Here's a preview from my zine, How Integers and Floats Work! If you want to see more comics like this, sign up for my saturday comics newsletter or browse more comics!

Image of a comic. To read the full HTML alt text, click "read the transcript".

browse more comics! get the zine!
read the transcript!

integer overflow

integers have a limited amount of space

The 4 usual sizes for integers are 8 bits, 16 bits, 32 bits, and 64 bits

the biggest 8-bit unsigned integer is 255

… so what happens if you do 255 + 1? going above/below the limits is called overflow

the result wraps around to the other side

255 + 1 = 0
255 + 3 = 2
200 * 2 = 144
0 - 2 = 254

maximum numbers for different sizes

bits: unsigned signed

8: 127 255

16: 32767 65535

32: 2 billion ~4 billion

64: ~9 quintillion ~18 quintillion

overflows often don’t throw errors

computer (thinking): “255 + 1? that number is 8 bits, so the answer is 0! that’s what you wanted right?”

This can cause VERY tricky bugs

some languages where integer overflow happens

Java/Kotlin
C/C++
Rust
Swift
C#
SQL
R
Go
Dart
Python (only in numpy)

Some throw errors on overflow, some don’t, for some it depends on various factors. Look up how it works in your language!

Saturday Morning Comics!

Want another comic like this in your email every Saturday? Sign up here!

I'll send you one of my favourite comics from my archives every Saturday.
© Julia Evans 2024 | All rights reserved (see the FAQ for notes about licensing)