网络字节序

网络字节序使用大端字节序:

#include <stdio.h>

#include <arpa/inet.h>



int main(void)

{

int k = 0x12345678;

    printf("%x %x %x %x\n",*((char*)&k),*((char*)&k+1),*((char*)&k+2),*((char*)&k+3));

    k = htonl(k);

    printf("%x %x %x %x\n",*((char*)&k),*((char*)&k+1),*((char*)&k+2),*((char*)&k+3));

}

所谓大端字节序,是指高字节存于内存低地址,低字节存于内存高地址;小端字节序相反。一般 x86 机器都为小端字节序,而网络(称为网络字节序)使用大端字节序。

你可能感兴趣的:(网络)