在小端和大端上进行位移

Bitshifting on little-endian and big-endian

请问:

((0x10203040 >> 24) & 0xFF) == 0x10

在小端和大端机器上始终为 TRUE?

是的。字节序只影响字节在内存中的存储方式。 0x10203040 的值始终是 270544960,无论它是内存中的第一个字节还是最后一个字节 0x10

Endianness 上的维基百科文章中无偿借用图像,无论我们的系统使用以下哪种布局:

0x0A0B0C0D的值还是一样的。

will this:

 ((0x10203040 >> 24) & 0xFF) == 0x10

be always TRUE on both little-endian and big-endian machines?

是的,它将在两种架构上提供相同的结果。它实际上是一个数学运算,MSB LSB 指令将在特定 CPU 的微代码的内部处理。