 <p>The <code>-1</code> is because integers start at 0, but our counting starts at 1.</p> <p>So, <code>2^32-1</code> is the <em>maximum value</em> for a 32-bit unsigned integer (32 binary digits). <code>2^32</code> is the <em>number of possible values</em>.</p> <p>To simplify why, look at decimal. <code>10^2-1</code> is the maximum value of a 2-digit decimal number (99). Because our intuitive human counting starts at 1, but integers are 0-based, <code>10^2</code> is the number of values (100).</p>