为什么 and 运算符在使用时表现不同:
- 带有无符号整数
当转换为 (uint*) 时,字节数组表示相同的值
unsafe { fixed (byte* i = new byte[4] { 0x02, 0x03, 0x04, 0xFF }) { uint m = 0x020304FF; Console.WriteLine("{0:X}",m & 0xFF000000); Console.WriteLine("{0:X}",*(uint*)i & 0xFF000000); } }
结果是
2000000
ff000000