c# and "&" operator used with pointer casting
<p>Why the and operator acts differently when used :</p>

<ol>
<li>with un unsigned int </li>
<li><p>with a byte array represiting the same value when casted to (uint*)  </p>

<pre><code>unsafe
{
    fixed (byte* i = new byte[4] { 0x02, 0x03, 0x04, 0xFF })
    {
        uint m = 0x020304FF;

        Console.WriteLine("{0:X}",m &amp; 0xFF000000); 

        Console.WriteLine("{0:X}",*(uint*)i &amp; 0xFF000000); 
     }
 }
</code></pre></li>
</ol>

<p>result is</p>

<pre><code>     2000000
     ff000000 
</code></pre>
