Tag: 字节顺序标记

是否htonl()改变了BIG ENDIAN机器上的字节顺序?

字面意思是关于htonl()的混淆。 在这么多链接中,我发现执行htonl的代码是: #define HTONL(n) (((((unsigned long)(n) & 0xFF)) << 24) | \ ((((unsigned long)(n) & 0xFF00)) <> 8) | \ ((((unsigned long)(n) & 0xFF000000)) >> 24)) 如果在两台机器上运行相同的代码,它将交换字节顺序。 示例:uint32_t a = 0x1; 在Little Endian: 地址值 100 1 101 0 102 0 103 0 在htonl之后(a) 地址值 100 0 101 0 102 0 103 1 ============================================ 在Big Endian机器上: […]