Why does `(33).to_bytes(2, 'big')` return `b'\x00!'` instead of `b'\x00\x21'`?
<p>I'm having a problem converting int to bytes in Python.  </p>

<p>This works - </p>

<pre><code>&gt;&gt;&gt; (1024).to_bytes(2, 'big')
b'\x04\x00'  
</code></pre>

<p>However this does not work as I would expect - </p>

<pre><code>&gt;&gt;&gt; (33).to_bytes(2, 'big')
b'\x00!'
</code></pre>

<p>What am I not understanding?</p>