在小端和大端上进行位移
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 的微代码的内部处理。
请问:
((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 的微代码的内部处理。