title: Why is a modulo operation returning an unexpected value
body: <p>Why is the following code printing <code>255</code>?</p>
  
  <pre><code>#include &lt;stdint.h&gt;
  #include &lt;stdio.h&gt;
  
  int main(void) {
    uint8_t i = 0;
    i = (i - 1) % 16;
    printf("i: %d\n", i);
    return 0;
  }
  </code></pre>
  
  <p>I assumed <code>15</code>, although <code>i - 1</code> evaluates to an integer. </p>